OpenCores
URL https://opencores.org/ocsvn/pdp8/pdp8/trunk

Subversion Repositories pdp8

[/] [pdp8/] [trunk/] [minimal/] [minimal_pdp8.vhd] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 trurl
--!
2
--! PDP-8 Processor
3
--!
4
--! \brief
5
--!      Minimal System
6
--!
7
--! \details
8
--!      Eve
9
--!
10
--! \file
11
--!      minimal_pdp8.vhd
12
--!
13
--! \author
14
--!      Rob Doyle - doyle (at) cox (dot) net
15
--!
16
--------------------------------------------------------------------
17
--
18
--  Copyright (C) 2009, 2010, 2011, 2012 Rob Doyle
19
--
20
-- This source file may be used and distributed without
21
-- restriction provided that this copyright statement is not
22
-- removed from the file and that any derivative work contains
23
-- the original copyright notice and the associated disclaimer.
24
--
25
-- This source file is free software; you can redistribute it
26
-- and/or modify it under the terms of the GNU Lesser General
27
-- Public License as published by the Free Software Foundation;
28
-- version 2.1 of the License.
29
--
30
-- This source is distributed in the hope that it will be
31
-- useful, but WITHOUT ANY WARRANTY; without even the implied
32
-- warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
33
-- PURPOSE. See the GNU Lesser General Public License for more
34
-- details.
35
--
36
-- You should have received a copy of the GNU Lesser General
37
-- Public License along with this source; if not, download it
38
-- from http://www.gnu.org/licenses/lgpl.txt
39
--
40
--------------------------------------------------------------------
41
--
42
-- Comments are formatted for doxygen
43
--
44
 
45
library ieee;                                   --! IEEE Library
46
use ieee.std_logic_1164.all;                    --! IEEE 1164
47
use work.uart_types.all;                        --! UART Types
48
use work.dk8e_types.all;                        --! DK8E Types
49
use work.kc8e_types.all;                        --! KC8E Types
50
use work.kl8e_types.all;                        --! KL8E Types
51
use work.rk8e_types.all;                        --! RK8E Types
52
use work.ls8e_types.all;                        --! LS8E Types
53
use work.pr8e_types.all;                        --! PR8E Types
54
use work.cpu_types.all;                         --! CPU Types
55
 
56
--
57
--! Minimal PDP8 System Entity
58
--
59
 
60
entity eMINIMAL_PDP8 is port (
61
    -- System
62
    clk        : in  std_logic;                 --! Clock
63
    rst        : in  std_logic;                 --! Reset Button
64
    -- TTY1 Interfaces
65
    tty1RXD    : in  std_logic;                 --! TTY1 Receive Data
66
    tty1TXD    : out std_logic;                 --! TTY1 Transmit Data
67
    -- SD Interface
68
    sdMISO     : in  std_logic;                 --! SD Data In
69
    sdMOSI     : out std_logic;                 --! SD Data Out
70
    sdSCLK     : out std_logic;                 --! SD Clock
71
    sdCS       : out std_logic                  --! SD Chip Select
72
 
73
);
74
end eMINIMAL_PDP8;
75
 
76
--
77
--! Minimal PDP8 System RTL
78
--
79
 
80
architecture rtl of eMINIMAL_PDP8 is
81
 
82
    signal swCNTL : swCNTL_t;
83
    signal swDATA : swDATA_t;
84
    signal swOPT  : swOPT_t;
85
 
86
begin
87
 
88
    --
89
    -- Options
90
    -- Setting the 'STARTUP' bit will cause the PDP8 to
91
    -- boot to the address in the switch register which
92
    -- is set to 0023 below
93
    --
94
 
95
    swOPT.KE8       <= '1';
96
    swOPT.KM8E      <= '1';
97
    swOPT.TSD       <= '1';
98
    swOPT.STARTUP   <= '1';
99
 
100
    --
101
    -- Front Panel Control Switches
102
    --
103
 
104
    swCNTL.boot     <= '0';
105
    swCNTL.lock     <= '0';
106
    swCNTL.loadADDR <= '0';
107
    swCNTL.loadEXTD <= '0';
108
    swCNTL.clear    <= '0';
109
    swCNTL.cont     <= '0';
110
    swCNTL.exam     <= '0';
111
    swCNTL.halt     <= '0';
112
    swCNTL.step     <= '0';
113
    swCNTL.dep      <= '0';
114
 
115
    --
116
    -- Front Panel Data Switches
117
    --
118
 
119
    swDATA          <= o"0023";
120
 
121
    --
122
    -- PDP8 Processor
123
    --
124
 
125
    iPDP8 : entity work.ePDP8 (rtl) port map (
126
        -- System
127
        clk      => clk,                        --! 50 MHz Clock
128
        rst      => rst,                        --! Reset Button
129
        -- CPU Configuration
130
        swCPU    => swPDP8A,                    --! CPU Configured to emulate PDP8A
131
        swOPT    => swOPT,                      --! Enable Options
132
        -- Real Time Clock Configuration
133
        swRTC    => clkDK8EC2,                  --! RTC 50 Hz interrupt
134
        -- TTY1 Interfaces
135
        tty1BR   => uartBR9600,                 --! TTY1 is 9600 Baud
136
        tty1HS   => uartHSnone,                 --! TTY1 has no flow control
137
        tty1CTS  => '1',                        --! TTY1 doesn't need CTS
138
        tty1RTS  => open,                       --! TTY1 doesn't need RTS
139
        tty1RXD  => tty1RXD,                    --! TTY1 RXD (to RS-232 interface)
140
        tty1TXD  => tty1TXD,                    --! TTY1 TXD (to RS-232 interface)
141
        -- TTY2 Interfaces
142
        tty2BR   => uartBR9600,                 --! TTY2 is 9600 Baud
143
        tty2HS   => uartHSnone,                 --! TTY2 has no flow control
144
        tty2CTS  => '1',                        --! TTY2 doesn't need CTS
145
        tty2RTS  => open,                       --! TTY2 doesn't need RTS
146
        tty2RXD  => '1',                        --! TTY2 RXD (tied off)
147
        tty2TXD  => open,                       --! TTY2 TXD (tied off)
148
        -- LPR Interface
149
        lprBR    => uartBR9600,                 --! LPR is 9600 Baud
150
        lprHS    => uartHSnone,                 --! LPR has no flow control
151
        lprDTR   => '1',                        --! LPR doesn't need DTR
152
        lprDSR   => open,                       --! LPR doesn't need DSR
153
        lprRXD   => '1',                        --! LPR RXD (tied off)
154
        lprTXD   => open,                       --! LPR TXD (tied off)
155
        -- Paper Tape Reader Interface
156
        ptrBR    => uartBR9600,                 --! PTR is 9600 Baud
157
        ptrHS    => uartHSnone,                 --! PTR has no flow control
158
        ptrCTS   => '1',                        --! PTR doesn't need CTS
159
        ptrRTS   => open,                       --! PTR doesn't need RTS
160
        ptrRXD   => '1',                        --! PTR RXD (tied off)
161
        ptrTXD   => open,                       --! PTR TXD (tied off)
162
        -- Secure Digital Disk Interface
163
        sdCD     => '0',                        --! SD Card Detect
164
        sdWP     => '0',                        --! SD Write Protect
165
        sdMISO   => sdMISO,                     --! SD Data In
166
        sdMOSI   => sdMOSI,                     --! SD Data Out
167
        sdSCLK   => sdSCLK,                     --! SD Clock
168
        sdCS     => sdCS,                       --! SD Chip Select
169
        -- Status
170
        rk8eSTAT => open,                       --! Disk Status (Ignore)
171
        -- Switches and LEDS
172
        swROT    => dispAC,                     --! Data LEDS display PC
173
        swDATA   => swDATA,                     --! RK8E Boot Loader Address
174
        swCNTL   => swCNTL,                     --! Switches
175
        ledRUN   => open,                       --! Run LED
176
        ledADDR  => open,                       --! Addressxs LEDS
177
        ledDATA  => open                        --! Data LEDS
178
    );
179
 
180
end rtl;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.