欢迎来到天天文库
浏览记录
ID:9213189
大小:187.07 KB
页数:6页
时间:2018-04-23
《modelsim使用入门(vhdl_》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、modelsim使用实例(VHDL)标签:modelsim仿真testbenchFPGA看了几天的modelsim以及如何在quartusII中调用,浏览了N个网页,尝试了N次,......终于初步完成。下面是入门部分介绍。modelsim是专业的仿真软件,仿真运行速度比同类的其他仿真软件都要快很多。Quartus自己都不再做仿真器了,普遍使用modelsim,自有其缘由。这里用的是modelsim-altera(6.6d)版本,与quartusII11.0搭配。据说Altera公司推出的Quartus软件不同版本对应不同的modelsim,相互之间
2、不兼容。某些功能齐全的modelsim版本可以进行两种语言的混合编程,modelsim-altera只能支持一种语言进行编程(VHDL或者Verilog选其一)。1、新建工程打开modelsim-->file-->new-->project新建工程,输入工程名,文件存放路径后(不可直接放在某盘下,必须放入文件夹中),进入下一步。在主体窗口下方出现project标签。见下图。2、新建文件--createnewfile:输入名称div10,选择语言VHDL--关闭对话框新的工程文件将会在工程窗口出现。3、写入源程序(VHDL)双击div10.vhd,打开
3、文本编辑器。实例代码如下(一个十分频的VHDL源代码):libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entitydiv10is--实体要与工程名相同port(clk:instd_logic;div:outstd_logic);enddiv10;architecturebehavofdiv10issignaltemp:std_logic:='0';signalcount:std_logic_vector
4、(2downto0):="000";beginprocess(clk)beginif(clk'eventandclk='1')thenif(count="100")thencount<=(others=>'0');temp<=nottemp;elsecount<=count+1;endif;endif;endprocess;div<=temp;endbehav;4、写testbenchmodelsim单独使用时需要自己写testbench,输入时钟,给测试电路加以激励源以驱动电路。再次新建一个VHDL文件,即写入testbench,采用50MHZ时钟
5、频率命名div10_tblibraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entitydiv10_tbisenddiv10_tb;architectureoneofdiv10_tbiscomponentdiv10isport(clk:instd_logic;div:outstd_logic);endcomponent;signalclk:std_logic:='0';signaldiv:std_logic:
6、='0';constantclk_period:time:=20ns;beginu1:div10portmap(clk=>clk,div=>div);processbeginwaitforclk_period/2;clk<='1';waitforclk_period/2;clk<='0';endprocess;end;保存为div10_tb.vhd文件,见图下。如果新建的testbench文件不在工程中,则需要将它添加过来。在workspace中右击--addtoproject--existingfile--选择所要添加的文件div10_tb.全部添
7、加完成后,全部编译一次compileall,见下图。5、开始仿真--在命令行中输入vsimwork.div10_tb对生成的testbench进行仿真--输入viewwave查看波形--输入addwave-hex*添加信号到波形图hex只用十六进制观看注意hex与*之间有个空格。--输入run3us观察波形这样即完成波形的仿真。
此文档下载收益归作者所有