⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testbench.vhd

📁 leon3 patch for altera ep1c20 FPGA.
💻 VHD
📖 第 1 页 / 共 2 页
字号:
  d3 : leon3mp        generic map ( fabtech, memtech, padtech, clktech, ncpu,	disas, dbguart, pclow )        port map (rst, clk, clkout, pllref, error, address, data,                  ramsn, ramoen, rwen, mben, iosn,                  romsn, oen, writen,                  sa(11 downto 0), sd, sdclk, sdcke, sdcsn, sdwen, sdrasn, sdcasn, sddqm, sdba,                  dsutx, dsurx, dsubren, dsuact,                  rxd1, txd1,                   ata_rst, ata_data, ata_da, ata_cs0, ata_cs1, ata_dior, ata_diow,                   ata_iordy, ata_intrq, ata_dmack,                   cf_power, cf_gnd_da, cf_atasel, cf_we, cf_csel,                  eth_aen, eth_readn, eth_writen, eth_nbe); -- optional sdram--   sd0 : if (CFG_SDEN = 1) and (CFG_SEPBUS = 0) generate--     u0: mt48lc16m16a2 generic map (index => 0, fname => sdramfile)-- 	PORT MAP(--             Dq => data(31 downto 16), Addr => address(14 downto 2),--             Ba => address(16 downto 15), Clk => sdclk, Cke => sdcke(0),--             Cs_n => sdcsn(0), Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen,--             Dqm => sddqm(3 downto 2));--     u1: mt48lc16m16a2 generic map (index => 16, fname => sdramfile)-- 	PORT MAP(--             Dq => data(15 downto 0), Addr => address(14 downto 2),--             Ba => address(16 downto 15), Clk => sdclk, Cke => sdcke(0),--             Cs_n => sdcsn(0), Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen,--             Dqm => sddqm(1 downto 0));--     u2: mt48lc16m16a2 generic map (index => 0, fname => sdramfile)-- 	PORT MAP(--             Dq => data(31 downto 16), Addr => address(14 downto 2),--             Ba => address(16 downto 15), Clk => sdclk, Cke => sdcke(0),--             Cs_n => sdcsn(1), Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen,--             Dqm => sddqm(3 downto 2));--     u3: mt48lc16m16a2 generic map (index => 16, fname => sdramfile)-- 	PORT MAP(--             Dq => data(15 downto 0), Addr => address(14 downto 2),--             Ba => address(16 downto 15), Clk => sdclk, Cke => sdcke(0),--             Cs_n => sdcsn(1), Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen,--             Dqm => sddqm(1 downto 0));--   end generate;  sd1 : if (CFG_MCTRL_SDEN = 1) and (CFG_MCTRL_SEPBUS = 1) generate    u0: mt48lc16m16a2 generic map (index => 0, fname => sdramfile)	PORT MAP(            Dq => sd(31 downto 16), Addr => sa(12 downto 0),            Ba => sdba, Clk => sdclk, Cke => sdcke,            Cs_n => sdcsn, Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen,            Dqm => sddqm(3 downto 2));    u1: mt48lc16m16a2 generic map (index => 16, fname => sdramfile)	PORT MAP(            Dq => sd(15 downto 0), Addr => sa(12 downto 0),            Ba => sdba, Clk => sdclk, Cke => sdcke,            Cs_n => sdcsn, Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen,            Dqm => sddqm(1 downto 0));    u2: mt48lc16m16a2 generic map (index => 0, fname => sdramfile)	PORT MAP(            Dq => sd(31 downto 16), Addr => sa(12 downto 0),            Ba => sdba, Clk => sdclk, Cke => sdcke,            Cs_n => sdcsn, Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen,            Dqm => sddqm(3 downto 2));    u3: mt48lc16m16a2 generic map (index => 16, fname => sdramfile)	PORT MAP(            Dq => sd(15 downto 0), Addr => sa(12 downto 0),            Ba => sdba, Clk => sdclk, Cke => sdcke,            Cs_n => sdcsn, Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen,            Dqm => sddqm(1 downto 0));--     sd64 : if (CFG_SD64 = 1) generate--       u4: mt48lc16m16a2 generic map (index => 0, fname => sdramfile)-- 	PORT MAP(--             Dq => sd(63 downto 48), Addr => sa(12 downto 0),--             Ba => sa(14 downto 13), Clk => sdclk, Cke => sdcke(0),--             Cs_n => sdcsn(0), Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen,--             Dqm => sddqm(7 downto 6));--       u5: mt48lc16m16a2 generic map (index => 16, fname => sdramfile)-- 	PORT MAP(--             Dq => sd(47 downto 32), Addr => sa(12 downto 0),--             Ba => sa(14 downto 13), Clk => sdclk, Cke => sdcke(0),--             Cs_n => sdcsn(0), Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen,--             Dqm => sddqm(5 downto 4));--       u6: mt48lc16m16a2 generic map (index => 0, fname => sdramfile)-- 	PORT MAP(--             Dq => sd(63 downto 48), Addr => sa(12 downto 0),--             Ba => sa(14 downto 13), Clk => sdclk, Cke => sdcke(0),--             Cs_n => sdcsn(1), Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen,--             Dqm => sddqm(7 downto 6));--       u7: mt48lc16m16a2 generic map (index => 16, fname => sdramfile)-- 	PORT MAP(--             Dq => sd(47 downto 32), Addr => sa(12 downto 0),--             Ba => sa(14 downto 13), Clk => sdclk, Cke => sdcke(0),--             Cs_n => sdcsn(1), Ras_n => sdrasn, Cas_n => sdcasn, We_n => sdwen,--             Dqm => sddqm(5 downto 4));--     end generate;  end generate;  -- 8 bit prom  prom0 : sram generic map (index => 6, abits => romdepth, fname => promfile)	port map (address(romdepth-1 downto 0), data(31 downto 24), 		  romsn, rwen, oen);  sram0 : for i in 0 to (sramwidth/8)-1 generate    sr0 : sram generic map (index => i, abits => sramdepth, fname => sramfile)      port map (address(sramdepth+1 downto 2), data(31-i*8 downto 24-i*8), ramsn,		  rwen, ramoen);  end generate;    ata_dev0 : ata_device  port map(    ata_rst_n  => ata_rst,    ata_data   => ata_data,    ata_da     => ata_da,    ata_cs0    => ata_cs0,    ata_cs1    => ata_cs1,    ata_dior_n => ata_dior,    ata_diow_n => ata_diow,    ata_iordy  => ata_iordy,    ata_intrq  => ata_intrq  );  error <= 'H';			  -- ERROR pull-up   iuerr : process   begin     wait for 2500 ns;     if to_x01(error) = '1' then wait on error; end if;     assert (to_x01(error) = '1')        report "*** IU in error mode, simulation halted ***"         severity failure ;   end process;  data <= buskeep(data), (others => 'H') after 250 ns;  sd <= buskeep(sd), (others => 'H') after 250 ns;  test0 :  grtestmod    port map ( rst, clk, error, address(21 downto 2), data,    	       iosn, oen, writen, brdyn);  dsucom : process    procedure dsucfg(signal dsurx : in std_ulogic; signal dsutx : out std_ulogic) is    variable w32 : std_logic_vector(31 downto 0);    variable c8  : std_logic_vector(7 downto 0);    constant txp : time := 160 * 1 ns;    begin    dsutx <= '1';    dsurst <= '0';    wait for 500 ns;    dsurst <= '1';    wait;    wait for 5000 ns;    txc(dsutx, 16#55#, txp);		-- sync uart--    txc(dsutx, 16#c0#, txp);--    txa(dsutx, 16#90#, 16#00#, 16#00#, 16#00#, txp);--    txa(dsutx, 16#00#, 16#00#, 16#02#, 16#ae#, txp);--    txc(dsutx, 16#c0#, txp);--    txa(dsutx, 16#91#, 16#00#, 16#00#, 16#00#, txp);--    txa(dsutx, 16#00#, 16#00#, 16#06#, 16#ae#, txp);--    txc(dsutx, 16#c0#, txp);--    txa(dsutx, 16#90#, 16#00#, 16#00#, 16#24#, txp);--    txa(dsutx, 16#00#, 16#00#, 16#06#, 16#03#, txp);--    txc(dsutx, 16#c0#, txp);--    txa(dsutx, 16#90#, 16#00#, 16#00#, 16#20#, txp);--    txa(dsutx, 16#00#, 16#00#, 16#06#, 16#fc#, txp);    txc(dsutx, 16#c0#, txp);    txa(dsutx, 16#90#, 16#00#, 16#00#, 16#00#, txp);    txa(dsutx, 16#00#, 16#00#, 16#00#, 16#2f#, txp);    txc(dsutx, 16#c0#, txp);    txa(dsutx, 16#91#, 16#00#, 16#00#, 16#00#, txp);    txa(dsutx, 16#00#, 16#00#, 16#00#, 16#6f#, txp);    txc(dsutx, 16#c0#, txp);    txa(dsutx, 16#90#, 16#11#, 16#00#, 16#00#, txp);    txa(dsutx, 16#00#, 16#00#, 16#00#, 16#00#, txp);    txc(dsutx, 16#c0#, txp);    txa(dsutx, 16#90#, 16#40#, 16#00#, 16#04#, txp);    txa(dsutx, 16#00#, 16#02#, 16#20#, 16#01#, txp);    txc(dsutx, 16#c0#, txp);    txa(dsutx, 16#90#, 16#00#, 16#00#, 16#20#, txp);    txa(dsutx, 16#00#, 16#00#, 16#00#, 16#02#, txp);    txc(dsutx, 16#c0#, txp);    txa(dsutx, 16#90#, 16#00#, 16#00#, 16#20#, txp);    txa(dsutx, 16#00#, 16#00#, 16#00#, 16#0f#, txp);    txc(dsutx, 16#c0#, txp);    txa(dsutx, 16#40#, 16#00#, 16#43#, 16#10#, txp);    txa(dsutx, 16#00#, 16#00#, 16#00#, 16#0f#, txp);    txc(dsutx, 16#c0#, txp);    txa(dsutx, 16#91#, 16#40#, 16#00#, 16#24#, txp);    txa(dsutx, 16#00#, 16#00#, 16#00#, 16#24#, txp);    txc(dsutx, 16#c0#, txp);    txa(dsutx, 16#91#, 16#70#, 16#00#, 16#00#, txp);    txa(dsutx, 16#00#, 16#00#, 16#00#, 16#03#, txp);    txc(dsutx, 16#c0#, txp);    txa(dsutx, 16#90#, 16#00#, 16#00#, 16#20#, txp);    txa(dsutx, 16#00#, 16#00#, 16#ff#, 16#ff#, txp);    txc(dsutx, 16#c0#, txp);    txa(dsutx, 16#90#, 16#40#, 16#00#, 16#48#, txp);    txa(dsutx, 16#00#, 16#00#, 16#00#, 16#12#, txp);    txc(dsutx, 16#c0#, txp);    txa(dsutx, 16#90#, 16#40#, 16#00#, 16#60#, txp);    txa(dsutx, 16#00#, 16#00#, 16#12#, 16#10#, txp);    txc(dsutx, 16#80#, txp);    txa(dsutx, 16#90#, 16#00#, 16#00#, 16#00#, txp);    rxi(dsurx, w32, txp, lresp);    txc(dsutx, 16#a0#, txp);    txa(dsutx, 16#40#, 16#00#, 16#00#, 16#00#, txp);    rxi(dsurx, w32, txp, lresp);    end;  begin    dsucfg(dsutx, dsurx);    wait;  end process;end ;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -