| |
ENTITY testBaud_generator IS
END testBaud_generator; --! 类似于verilog中的 module testBaud_generator; 没有声明端口,因为此模块是用于仿真的不需要端口声明,底层是要例化要访问的模块的
--! vhdl中好多地方都在关键字后面,begin前面声明一些变量和变量,例如
ARCHITECTURE behavior. OF testBaud_generator IS
COMPONENT baud_generator
Port ( rst : in STD_LOGIC; --! Reset Input
clk : in STD_LOGIC; --! Clock input
cycle_wait : in STD_LOGIC_VECTOR ((nBitsLarge-1) downto 0); --! Number of cycles to wait for baud generation
baud_oversample : out std_logic; --! Oversample(8x) version of baud (Used on serial_receiver)
baud : out STD_LOGIC); --! Baud generation output (Used on serial_transmitter)
END COMPONENT;
--! 上面的部分是声明architecture中要例化的模块
--Inputs
signal rst : std_logic := '0'; --! Signal to connect with UUT
signal clk : std_logic := '0'; --! Signal to connect with UUT
signal cycle_wait : std_logic_vector((nBitsLarge-1) downto 0) := (others => '0'); --! Signal to connect with UUT
--Outputs
signal baud : std_logic; --! Signal to connect with UUT
signal baud_oversample : std_logic; --! Signal to connect with UUT
-- Clock period definitions (1.8432MHz)
--! 上面是声明architecture内部互联的信号
constant clk_period : time := 20 ns; -- 0.543us (1.8432Mhz) 20ns (50Mhz)
--! begin后面才是architecture中的实际内容,也就是在architecture名字和begin之间都是一些声明,这些在verilog中是不需要的,也就是说verilog的语法结构更加简洁
BEGIN