赞
踩
这里是利用学校的实验直接做的练习,用testbench编写激励信号
设计一个8位位宽的单向数据总线,由使能端S控制总线数据流向,当S=00,A的数据赋给C;当S=01,B的值赋给C。用VHDL编程设计该单向八位数据总线,并观察的仿真波形结果验证单向总线的功能。
可以通过选择器来实现控制a和b的输入。利用条件赋值语句,选择信号IF的语句实现。
VHDL部分的代码:
- LIBRARY IEEE;
- USE IEEE.std_logic_1164.ALL;
- Entity data IS
- port(a,b:in std_logic_vector(7 downto 0);
- sl:in std_logic;
- c: out std_logic_vector(7 downto 0)
- );
- END entity;
-
- Architecture behav of data IS
- BEGIN
- process(sl,a,b)
- BEGIN
- IF sl='0' THEN
- c<=a;
- ELSIF sl='1' THEN
- c<=b;
- ELSE
- C<="00000000";
- END IF;
- END process;
- END behav;
编译成功后可进行下一步联调了。
第一次使用Modelsim的时候,Quartus中是没有对于Modelsim的路径的,我们需要联调就要在Quartus中添加Modelsim的安装路径。设置好后,后面联调也不需要再进行重新设置了。
1) 在桌面的Modelsim“打开文件所在位置”,这里是我的文件路径:
2)在Tools中找到Options..
第一个选项,看到"ModelSim"选项,在此添加自己的ModelSim安装路径,选完后点击OK。
3) 找到Assignments中的Settings...
4) Settings中找到simulation
Tool name改成Modelsim(因为安装仿真的就是Modelsim)
改一下语言:
设置完成后点个OK
1)菜单里找到Start——Start Test Bench Template Writer自动生成testbench模板
2)生成成功后,与实例相同名字的.vht的文件可以在本工程内的simulation——modelsim文件夹中内找到,打开进行编写
3)整个模板我仅在最后的process中加入了一些验证代码,因为前面分配等quartus已经帮写好了。最后保存一下。
- BEGIN
- a<="00000000";b<="00000000";sl<='0';
- wait for 10 ns;
- a<="00000001";b<="00000000";sl<='0';
- wait for 10 ns;
- a<="00000010";b<="00000000";sl<='0';
- wait for 10 ns;
- a<="00000000";b<="00000001";sl<='1';
- wait for 10 ns;
- a<="00000000";b<="00000011";sl<='1';
- wait for 10 ns;
1)回到setting界面,将下面None部分改勾选,然后点击testbenches,添加我们写好的testbench文件
点击new
找到文件路径
打开该工程的simulation——>modelsim文件夹,选择后缀为.vht文件
选好后add
修改名字,这里testbench中写的实体名叫什么就改成什么名字,然后OK,最后apply一下成功添加testbench文件
2)菜单中选择RTL Simulation,直接能够跳转到Modelsim开始仿真
如果仿真成功,Modelsim会显示出run -all
仿真出来的波形,对应的逻辑正确,仿真成功。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。