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

📄 tb.vhd

📁 8051的VHDL IP核
💻 VHD
字号:
LIBRARY ieee;USE ieee.std_logic_1164.ALL;USE ieee.std_logic_arith.ALL;USE std.textio.ALL;ENTITY tb ISEND ENTITY tb;ARCHITECTURE a1 OF tb IS   COMPONENT mc8051 IS       GENERIC (          program_filename : string       );       PORT (          P0      : INOUT std_logic_vector(7 DOWNTO 0);  -- used for data i/o          P1      : INOUT std_logic_vector(7 DOWNTO 0);  -- low-order address byte          P2      : INOUT std_logic_vector(7 DOWNTO 0);  -- high-order address byte          P3      : INOUT std_logic_vector(7 DOWNTO 0);          rst     : IN    std_logic;  -- low to high causes reset,          xtal1   : IN    std_logic;  -- clock input 1.2 to 12 MHz          xtal2   : OUT   std_logic;  -- output from oscillator (for crystal) -- IGNORED !          ale     : OUT   std_logic;  -- provides Address Latch Enable output,                  -- also receives the program pulse input during programming          psen_n  : OUT   std_logic;  -- program store enable          ea_n    : IN    std_logic   -- when high, use internal ROM instructions       );    END COMPONENT mc8051;    COMPONENT serial_driver IS         generic (filename : string := "testing.txt");  port(    TX : out std_logic;    RX : in std_logic);end COMPONENT serial_driver;    SIGNAL p0, p1, p2, p3 : std_logic_vector(7 DOWNTO 0);    SIGNAL clock      : std_logic;    SIGNAL reset_line      : std_logic;BEGIN--   ext_int : PROCESS IS--   BEGIN--      WAIT FOR 20 ms;--      P3(2) <= '0';--      WAIT FOR 1 us;--      P3(2) <= '1';--   END PROCESS ext_int;   clockgen : PROCESS IS    BEGIN       -- 11.059 MHz clock, or 90.4 ns period       -- = 90400 ps       clock <= '0';       WAIT FOR 45200 ps;       clock <= '1';       WAIT FOR 45200 ps;   END PROCESS clockgen;   reset_line <= '1', '0' AFTER 20 us;   uut : mc8051       GENERIC MAP (           program_filename => "code.hex"       )       PORT MAP (           P0 => p0,           P1 => p1,           P2 => p2,           P3 => p3,           rst => reset_line,           xtal1 => clock,           ea_n => '1'       );--   serial_drv : serial_driver--      GENERIC MAP (filename => "testing.txt")--      PORT MAP (--         TX => p3(0) ,--         RX => p3(1)--      );--    -- --    pulse_modulate : PROCESS IS--        CONSTANT period      : TIME := 100 us;--        CONSTANT duty_cycle1 : REAL := 0.7;--        CONSTANT duty_cycle2 : REAL := 0.3;--    BEGIN--        p1(0) <= '1';--        WAIT FOR period * duty_cycle1;--        p1(0) <= '0';--        WAIT FOR period * (1.0 - duty_cycle1);--        p1(0) <= '1';--        WAIT FOR period * duty_cycle2;--        p1(0) <= '0';--        WAIT FOR period * (1.0 - duty_cycle2);--        WAIT;--    END PROCESS pulse_modulate;-- END;        

⌨️ 快捷键说明

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