文档详情

[实用参考]VHDL语言入门教程.ppt

发布:2021-11-03约3.43万字共112页下载文档
文本预览下载声明
移位寄存器: 键盘消抖电路: 3.6 VHDL仿真 仿真(Simulation,也称模拟),不接触具体的硬件系统利用计算机对电路设计的逻辑行为和运行功能进行模拟检测,较大规模的VHDL系统设计的最后完成必须经历多层次的仿真测试过程,包括针对系统的VHDL行为仿真、分模块的时序仿真和硬件仿真,直至最后系统级的硬件仿真测试。 对VHDL源文件进行语法及语义检查,将其转换为中间数据格式。 保存中间数据结果,提供VHDL源程序中需要的设计库和程序包。 功能仿真是在未经布线和适配前,用VHDL源程序综合后的文件进行仿真。时序仿真是将设计综合后,由适配器完成具体芯片的映射后得到的文件进行仿真。 3.6.1 仿真激励信号的产生 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY ADDER4 IS PORT ( a, b : IN INTEGER RANGE 0 TO 15; c : OUT INTEGER RANGE 0 TO 15 ); END ADDER4; ARCHITECTURE one OF ADDER4 IS BEGIN c = a + b; END one; ENTITY SIGGEN IS PORT ( sig1 : OUT INTEGER RANGE 0 TO 15; sig2 : OUT INTEGER RANGE 0 TO 15 ); END; ARCHITECTURE Sim OF SIGGEN IS BEGIN sig1 = 10, 5 AFTER 200 ns, 8 AFTER 400 ns; sig2 = 3, 4 AFTER 100 ns, 6 AFTER 300 ns; END; SIGGEN的仿真输出波形 用VHDL写一个波形信号发生器 方法一 ENTITY BENCH IS END; ARCHITECTURE one OF BENCH IS COMPONENT ADDER4 PORT ( a, b : integer range 0 to 15; c : OUT INTEGER RANGE 0 TO 15 ); END COMPONENT; COMPONENT SIGGEN PORT ( sig1 : OUT INTEGER RANGE 0 TO 15; sig2 : OUT INTEGER RANGE 0 TO 15 ); END COMPONENT; SIGNAL a, b, c : INTEGER RANGE 0 TO 15; BEGIN U1 : ADDER4 PORT MAP (a, b, c); U2 : SIGGEN PORT MAP (sig1=a, sig2=b); END; 将波形信号发生器与ADDER4组装为一个VHDL仿真测试模块 BENCH仿真波形图 force a 0 (强制信号的当前值为0) force b 0 0, 1 10 (强制信号b在时刻0的值为0,在时刻10的值为1) force clk 0 0, 1 15 –repeat 20 (clk为周期信号,周期为20) 利用仿真器的波形设置命令施加激励信号 force命令的格式如下: force 信号名 值 [时间][, 值 时间 …] [-repeat 周期] force a 10 0, 5 200, 8 400 force b 3 0, 4 100, 6 300 BENCH仿真波形图 初始化仿真过程后,在命令行中输入命令: 执行RUN命令。 对ADDER4的结构体进行仿真: 3.6.2 VHDL测试基准(Test Bench) Library IEEE; use IEEE.std_logic_1164.all; entity counter8 is port (CLK, CE, LOAD, DIR, RESET: in STD_LOGIC; DIN: in INTEGER range 0 to 255; COUNT: out INTEGER range 0 to 255 ); end counter8; architecture counter8_arch of counter8 is begin process (CLK, RESET) variable COUNTER: INTEGER range 0 to 255; begin if RESET=1 then COUNTER := 0; elsif CLK=1 and CLKevent then if LOAD=1 then COUNTER
显示全部
相似文档