1 ------------------------------------------------------------------------------
3 ---- ZPU Small connection to the FPGA pins ----
5 ---- http://www.opencores.org/ ----
8 ---- This module connects the ZPU_Small1 (zpu_small1.vhdl) core to a ----
9 ---- Spartan 3 1500 Xilinx FPGA available in the GR-XC3S board from ----
16 ---- - Salvador E. Tropea, salvador inti.gob.ar ----
18 ------------------------------------------------------------------------------
20 ---- Copyright (c) 2008 Salvador E. Tropea <salvador inti.gob.ar> ----
21 ---- Copyright (c) 2008 Instituto Nacional de TecnologĂa Industrial ----
23 ---- Distributed under the GPL license ----
25 ------------------------------------------------------------------------------
27 ---- Design unit: DMIPS_Small1(FPGA) (Entity and architecture) ----
28 ---- File name: dmips_small1.vhdl ----
30 ---- Limitations: None known ----
31 ---- Errors: None known ----
32 ---- Library: work ----
33 ---- Dependencies: IEEE.std_logic_1164 ----
34 ---- IEEE.numeric_std ----
36 ---- Target FPGA: Spartan 3 (XC3S1500-4-FG456) ----
37 ---- Language: VHDL ----
38 ---- Wishbone: No ----
39 ---- Synthesis tools: Xilinx Release 9.2.03i - xst J.39 ----
40 ---- Simulation tools: N/A ----
41 ---- Text editor: SETEdit 0.5.x ----
43 ------------------------------------------------------------------------------
46 use IEEE.std_logic_1164.all;
47 use IEEE.numeric_std.all;
52 entity DMIPS_Small1 is
54 WORD_SIZE : natural:=32; -- 32 bits data path
55 D_CARE_VAL : std_logic:='0'; -- Fill value, I got better results with it
56 CLK_FREQ : positive:=50; -- 50 MHz clock
57 BRATE : positive:=115200; -- RS-232 baudrate
58 ADDR_W : natural:=18; -- 18 bits address space=256 kB, 128 kB I/O
59 BRAM_W : natural:=15); -- 15 bits RAM space=32 kB
61 clk_i : in std_logic; -- CPU clock
62 rst_i : in std_logic; -- Reset
63 rs232_tx_o : out std_logic; -- UART Tx
64 rs232_rx_i : in std_logic); -- UART Rx
66 constant BRD_PB1_I : string:="D19"; -- SWITCH8==S2
67 constant BRD_CLK1_I : string:="AA12"; -- 50 MHz clock
68 --constant BRD_CLK1_I : string:="AB12"; -- 40 MHz clock
69 -- UART: direct 1:1 cable
70 constant BRD_TX_O : string:="L4"; -- UART 1 (J1) TXD1 DB9 pin 2
71 constant BRD_RX_I : string:="L3"; -- UART 1 (J1) RXD1 DB9 pin 3
76 attribute LOC : string;
77 attribute IOSTANDARD : string;
78 constant IOSTD : string:="LVTTL";
80 attribute LOC of rst_i : signal is BRD_PB1_I;
81 attribute IOSTANDARD of rst_i : signal is IOSTD;
82 attribute LOC of clk_i : signal is BRD_CLK1_I;
83 attribute LOC of rs232_tx_o : signal is BRD_TX_O;
84 attribute IOSTANDARD of rs232_tx_o : signal is IOSTD;
85 attribute LOC of rs232_rx_i : signal is BRD_RX_I;
86 attribute IOSTANDARD of rs232_rx_i : signal is IOSTD;
87 end entity DMIPS_Small1;
89 architecture FPGA of DMIPS_Small1 is
90 component ZPU_Small1 is
92 WORD_SIZE : natural:=32; -- 32 bits data path
93 D_CARE_VAL : std_logic:='0'; -- Fill value
94 CLK_FREQ : positive:=50; -- 50 MHz clock
95 BRATE : positive:=115200; -- RS232 baudrate
96 ADDR_W : natural:=16; -- 16 bits address space=64 kB, 32 kB I/O
97 BRAM_W : natural:=15); -- 15 bits RAM space=32 kB
99 clk_i : in std_logic; -- CPU clock
100 rst_i : in std_logic; -- Reset
101 break_o : out std_logic; -- Break executed
102 dbg_o : out zpu_dbgo_t; -- Debug info
103 rs232_tx_o : out std_logic; -- UART Tx
104 rs232_rx_i : in std_logic; -- UART Rx
105 gpio_in : in std_logic_vector(31 downto 0);
106 gpio_out : out std_logic_vector(31 downto 0);
107 gpio_dir : out std_logic_vector(31 downto 0) -- 1 = in, 0 = out
109 end component ZPU_Small1;
113 WORD_SIZE => WORD_SIZE, D_CARE_VAL => D_CARE_VAL,
114 CLK_FREQ => CLK_FREQ, BRATE => BRATE, ADDR_W => ADDR_W,
117 clk_i => clk_i, rst_i => rst_i, rs232_tx_o => rs232_tx_o,
118 rs232_rx_i => rs232_rx_i, dbg_o => open, gpio_in => (others => '0'));
119 end architecture FPGA; -- Entity: DMIPS_Small1