📄 testbench.vhd
字号:
-------------------------------------------------------------------------------- LEON3 Demonstration design test bench-- Copyright (C) 2004 Jiri Gaisler, Gaisler Research---- This program is free software; you can redistribute it and/or modify-- it under the terms of the GNU General Public License as published by-- the Free Software Foundation; either version 2 of the License, or-- (at your option) any later version.---- This program is distributed in the hope that it will be useful,-- but WITHOUT ANY WARRANTY; without even the implied warranty of-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the-- GNU General Public License for more details.------------------------------------------------------------------------------library ieee;use ieee.std_logic_1164.all;library gaisler;use gaisler.libdcom.all;use gaisler.sim.all;library techmap;use techmap.gencomp.all;library micron;use micron.components.all;use work.debug.all;use work.config.all; -- configurationentity testbench is generic ( fabtech : integer := CFG_FABTECH; memtech : integer := CFG_MEMTECH; padtech : integer := CFG_PADTECH; clktech : integer := CFG_CLKTECH; ncpu : integer := CFG_NCPU; disas : integer := CFG_DISAS; -- Enable disassembly to console dbguart : integer := CFG_DUART; -- Print UART on console pclow : integer := CFG_PCLOW; clkperiod : integer := 20; -- system clock period romwidth : integer := 8; -- rom data width (8/32) romdepth : integer := 23; -- rom address depth sramwidth : integer := 32; -- ram data width (8/16/32) sramdepth : integer := 20; -- ram address depth srambanks : integer := 1 -- number of ram banks );-- port (-- pci_rst : in std_ulogic; -- PCI bus-- pci_clk : in std_ulogic;-- pci_gnt : in std_ulogic;-- pci_idsel : in std_ulogic; -- pci_lock : inout std_ulogic;-- pci_ad : inout std_logic_vector(31 downto 0);-- pci_cbe : inout std_logic_vector(3 downto 0);-- pci_frame : inout std_ulogic;-- pci_irdy : inout std_ulogic;-- pci_trdy : inout std_ulogic;-- pci_devsel : inout std_ulogic;-- pci_stop : inout std_ulogic;-- pci_perr : inout std_ulogic;-- pci_par : inout std_ulogic; -- pci_req : inout std_ulogic;-- pci_serr : inout std_ulogic;-- pci_host : in std_ulogic;-- pci_66 : in std_ulogic-- );end; architecture behav of testbench isconstant promfile : string := "prom.srec"; -- rom contentsconstant sramfile : string := "sram.srec"; -- ram contentsconstant sdramfile : string := "sdram.srec"; -- sdram contentscomponent leon3mp generic ( fabtech : integer := CFG_FABTECH; memtech : integer := CFG_MEMTECH; padtech : integer := CFG_PADTECH; clktech : integer := CFG_CLKTECH; ncpu : integer := CFG_NCPU; disas : integer := CFG_DISAS; -- Enable disassembly to console dbguart : integer := CFG_DUART; -- Print UART on console pclow : integer := CFG_PCLOW ); port ( resetn : in std_ulogic; clk : in std_ulogic; clkout : out std_ulogic; pllref : in std_ulogic; errorn : out std_ulogic; address : out std_logic_vector(27 downto 0); data : inout std_logic_vector(31 downto 0); ramsn : out std_ulogic; ramoen : out std_ulogic; rwen : out std_ulogic; mben : out std_logic_vector (3 downto 0); iosn : out std_ulogic; romsn : out std_ulogic; oen : out std_ulogic; writen : out std_ulogic; sa : out std_logic_vector(11 downto 0); sd : inout std_logic_vector(31 downto 0); sdclk : out std_ulogic; sdcke : out std_ulogic; -- sdram clock enable sdcsn : out std_ulogic; -- sdram chip select sdwen : out std_ulogic; -- sdram write enable sdrasn : out std_ulogic; -- sdram ras sdcasn : out std_ulogic; -- sdram cas sddqm : out std_logic_vector (3 downto 0); -- sdram dqm sdba : out std_logic_vector (1 downto 0); dsutx : out std_ulogic; -- DSU tx data dsurx : in std_ulogic; -- DSU rx data dsubren : in std_ulogic; dsuact : out std_ulogic; rxd1 : in std_ulogic; -- UART1 rx data txd1 : out std_ulogic; -- UART1 tx data ata_rst : out std_logic; ata_data : inout std_logic_vector(15 downto 0); ata_da : out std_logic_vector(2 downto 0); ata_cs0 : out std_logic; ata_cs1 : out std_logic; ata_dior : out std_logic; ata_diow : out std_logic; ata_iordy : in std_logic; ata_intrq : in std_logic; ata_dmack : out std_logic; cf_power : out std_logic; cf_gnd_da : out std_logic_vector(10 downto 3); -- grounded address lines cf_atasel : out std_logic; -- grounded to select true IDE mode cf_we : out std_logic; -- should be connected to VCC in true IDE mode cf_csel : out std_logic; -- for smc lan chip eth_aen : out std_ulogic; eth_readn : out std_ulogic; eth_writen : out std_ulogic; eth_nbe : out std_logic_vector (3 downto 0); eth_lclk : out std_ulogic; eth_nads : out std_logic; eth_ncycle : out std_logic; eth_wnr : out std_logic; eth_nvlbus : out std_logic; eth_nrdyrtn : out std_logic; eth_ndatacs : out std_logic );end component;signal clk : std_logic := '0';signal clkout, pllref : std_ulogic;signal Rst : std_logic := '0'; -- Resetconstant ct : integer := clkperiod/2;signal address : std_logic_vector(27 downto 0);signal data : std_logic_vector(31 downto 0);signal ramsn : std_ulogic;signal ramoen : std_ulogic;signal rwen : std_ulogic;signal mben : std_logic_vector(3 downto 0);--signal rwenx : std_logic_vector(3 downto 0);signal romsn : std_ulogic;signal iosn : std_ulogic;signal oen : std_ulogic;--signal read : std_ulogic;signal writen : std_ulogic;signal brdyn : std_ulogic;signal bexcn : std_ulogic;signal wdog : std_ulogic;signal dsuen, dsutx, dsurx, dsubren, dsuact : std_ulogic;signal dsurst : std_ulogic;signal test : std_ulogic;signal error : std_logic;signal gpio : std_logic_vector(7 downto 0);signal GND : std_ulogic := '0';signal VCC : std_ulogic := '1';signal NC : std_ulogic := 'Z';signal clk2 : std_ulogic := '1'; signal sdcke : std_ulogic; -- clk ensignal sdcsn : std_ulogic; -- chip selsignal sdwen : std_ulogic; -- write ensignal sdrasn : std_ulogic; -- row addr stbsignal sdcasn : std_ulogic; -- col addr stbsignal sddqm : std_logic_vector (3 downto 0); -- data i/o masksignal sdclk : std_ulogic;signal sdba : std_logic_vector(1 downto 0); signal plllock : std_ulogic; signal txd1, rxd1 : std_ulogic; --signal txd2, rxd2 : std_ulogic; -- for smc lan chipsignal eth_aen : std_ulogic; -- for smsc ethsignal eth_readn : std_ulogic; -- for smsc ethsignal eth_writen : std_ulogic; -- for smsc ethsignal eth_nbe : std_logic_vector(3 downto 0); -- for smsc ethsignal eth_datacsn : std_ulogic;constant lresp : boolean := false;signal sa : std_logic_vector(14 downto 0);signal sd : std_logic_vector(31 downto 0);-- ATA signalssignal ata_rst : std_logic; signal ata_data : std_logic_vector(15 downto 0);signal ata_da : std_logic_vector(2 downto 0);signal ata_cs0 : std_logic;signal ata_cs1 : std_logic;signal ata_dior : std_logic;signal ata_diow : std_logic;signal ata_iordy : std_logic;signal ata_intrq : std_logic;signal ata_dmack : std_logic;signal cf_gnd_da : std_logic_vector(10 downto 3); signal cf_atasel : std_logic; signal cf_we : std_logic; signal cf_power : std_logic;signal cf_csel : std_logic;begin-- clock and reset clk <= not clk after ct * 1 ns; rst <= dsurst; dsubren <= '1'; rxd1 <= '1'; pllref <= clkout;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -