c_第12章+系统仿真

上传人:j7****6 文档编号:61609131 上传时间:2018-12-06 格式:PPT 页数:34 大小:337.50KB
返回 下载 相关 举报
c_第12章+系统仿真_第1页
第1页 / 共34页
c_第12章+系统仿真_第2页
第2页 / 共34页
c_第12章+系统仿真_第3页
第3页 / 共34页
c_第12章+系统仿真_第4页
第4页 / 共34页
c_第12章+系统仿真_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《c_第12章+系统仿真》由会员分享,可在线阅读,更多相关《c_第12章+系统仿真(34页珍藏版)》请在金锄头文库上搜索。

1、EDA 技术实用教程,第 12 章 系统仿真,12.1 仿真,KX康芯科技,仿真也称模拟(Simulation) 是对电路设计的一种间接的检测方法,是利用计算机对整个硬件系统进行模拟检测,但却可以不接触具体的硬件系统。,12.2 VHDL源程序仿真,KX康芯科技,图12-1 VHDL仿真流程,12.2 VHDL源程序仿真,KX康芯科技,【例12-1】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY and1 IS PORT(aaa,bbb : IN STD_LOGIC; ccc: OUT STD_LOGIC); END and1; ARCHI

2、TECTURE one OF and1 IS BEGIN ccc = aaa AND bbb; END;,12.2 VHDL源程序仿真,KX康芯科技,【例12-2】 LIBRARY IEEE; USE IEEE.std_logic_1164.all; ENTITY TRIBUF_and1 IS GENERIC ( ttri: TIME := 1 ns; ttxz: TIME := 1 ns; ttzx: TIME := 1 ns); PORT ( in1 : IN std_logic; oe : IN std_logic; y : OUT std_logic); END TRIBUF_and1

3、; ARCHITECTURE behavior OF TRIBUF_and1 IS BEGIN PROCESS (in1, oe) BEGIN IF oeEVENT THEN (接下页),KX康芯科技,IF oe = 0 THEN y = TRANSPORT Z AFTER ttxz; ELSIF oe = 1 THEN y = TRANSPORT in1 AFTER ttzx; END IF; ELSIF oe = 1 THEN y = TRANSPORT in1 AFTER ttri; ELSIF oe = 0 THEN y = TRANSPORT Z AFTER ttxz; END IF

4、; END PROCESS; END behavior; LIBRARY IEEE; USE IEEE.std_logic_1164.all; USE work.tribuf_and1; ENTITY and1 IS PORT ( aaa : IN std_logic; bbb : IN std_logic; ccc : OUT std_logic); END and1; ARCHITECTURE EPF10K10LC84_a3 OF and1 IS . . . . . . END EPF10K10LC84_a3;,12.3 仿真激励信号的产生,KX康芯科技,【例12-3】 LIBRARY I

5、EEE; 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;,第一种方法 :,12.3 仿真激励信号的产生,KX康芯科技,【例12-4】 ENTITY SIGGEN IS PORT ( sig1 : OUT INTEGER RANGE 0 TO 15; sig2 : OUT I

6、NTEGER 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;,12.3 仿真激励信号的产生,KX康芯科技,图12-2 SIGGEN的仿真输出波形,12.3 仿真激励信号的产生,KX康芯科技,【例12-5】 ENTITY BENCH IS END; ARCHITECTURE one OF BENCH IS COMPONENT ADDER4 PORT (

7、 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

8、=b); END;,12.3 仿真激励信号的产生,KX康芯科技,图12-3 BENCH仿真波形图,12.3 仿真激励信号的产生,KX康芯科技,force , -repeat ,第二种方法 :,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 a 10 0, 5 200, 8 400 force b 3 0, 4 100, 6 300,12.4 VHDL测试基准,KX康芯科技,【例12-6】 Library I

9、EEE; 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

10、RESET=1 then COUNTER := 0; elsif CLK=1 and CLKevent then if LOAD=1 then COUNTER := DIN; (接下页),KX康芯科技,Else if CE=1 then if DIR=1 then if COUNTER =255 then COUNTER := 0; Else COUNTER := COUNTER + 1; end if; else if COUNTER =0 then COUNTER := 255; Else COUNTER := COUNTER - 1; end if; end if; end if; en

11、d if; end if; COUNT = COUNTER; end process; end counter8_arch;,12.4 VHDL测试基准,KX康芯科技,【例12-7】 Entity testbench is end testbench; Architecture testbench_arch of testbench is File RESULTS: TEXT open WRITE_MODE is “results.txt“; Component counter8 port ( CLK: in STD_LOGIC; RESET: in STD_LOGIC; CE, LOAD,

12、DIR: in STD_LOGIC; DIN: in INTEGER range 0 to 255; COUNT: out INTEGER range 0 to 255 ); end component; shared variable end_sim : BOOLEAN := false; signal CLK, RESET, CE, LOAD, DIR: STD_LOGIC; signal DIN: INTEGER range 0 to 255; signal COUNT: INTEGER range 0 to 255; procedure WRITE_RESULTS ( CLK,CE,L

13、OAD,LOAD,RESET : STD_LOGIC; (接下页),KX康芯科技,DIN,COUNT : INTEGER ) is Variable V_OUT : LINE; Begin write(V_OUT, now, right, 16, ps); - 输入时间 write(V_OUT, CLK, right, 2); write(V_OUT, RESET, right, 2); write(V_OUT, CE, right, 2); write(V_OUT, LOAD, right, 2); write(V_OUT, DIR, right, 2); write(V_OUT, DIN,

14、 right, 257); -write outputs write(V_OUT, COUNT, right, 257); writeline(RESULTS,V_OUT); end WRITE_RESULTS; begin UUT: COUNTER8 port map (CLK = CLK,RESET = RESET, CE = CE, LOAD = LOAD, DIR = DIR, DIN = DIN, COUNT = COUNT ); CLK_IN: process Begin (接下页),KX康芯科技,if end_sim = false then CLK = 0; Wait for

15、15 ns; CLk =1; Wait for 15 ns; Else Wait; end if; end process; STIMULUS: process Begin RESET = 1; CE = 1; - 计数使能 DIR = 1; - 加法计数 DIN = 250; - 输入数据 LOAD = 0; - 禁止加载输入的数据 wait for 15 ns; RESET = 0; wait for 1 us; CE = 0; - 禁止计数脉冲信号进入 wait for 200 ns; CE = 1; wait for 200 ns; (接下页),KX康芯科技,DIR = 0; wait

16、 for 500 ns; LOAD = 1; wait for 60 ns; LOAD = 0; wait for 500 ns; DIN = 60; DIR = 1; LOAD = 1; wait for 60 ns; LOAD = 0; wait for 1 us; CE = 0; wait for 500 ns; CE = 1; wait for 500 ns; end_sim :=true; wait; end process; WRITE_TO_FILE: WRITE_RESULTS(CLK,RESET,CE,LOAD,DIR,DIN,COUNT); End testbench_arch;,12.4 VHDL测试基准,KX康

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号