Verilog-HDL数字设计教程-第6章-Verilog-HDL仿真技术课件.ppt
《Verilog-HDL数字设计教程-第6章-Verilog-HDL仿真技术课件.ppt》由会员分享,可在线阅读,更多相关《Verilog-HDL数字设计教程-第6章-Verilog-HDL仿真技术课件.ppt(52页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第6章 Verilog HDL仿真技术6.1 modelsim软件的使用6.2 延时6.3 常用块语句6.4 常用系统函数和系统任务6.5 端口连接规则6.6 小结在线教务辅导网:在线教务辅导网:http:/教材其余课件及动画素材请查阅在线教务辅导网教材其余课件及动画素材请查阅在线教务辅导网QQ:349134187 或者直接输入下面地址:或者直接输入下面地址:http:/6.1 modelsim软件的使用软件的使用1.modelsim软件简介2.使用图形界面对设计进行仿真modelsim软件简介软件简介使用图形界面对设计进行仿真使用图形界面对设计进行仿真图6-2 顶层设计sin_wave框图定
2、制宏功能模块定制宏功能模块步骤步骤1图6-3 定制新的宏功能块 定制宏功能模块定制宏功能模块步骤步骤2图6-4 LPM_ROM宏功能模块设定 定制宏功能模块定制宏功能模块步骤步骤3图6-5 选择rom_64x8模块数据线和地址线宽度 定制宏功能模块定制宏功能模块步骤步骤4图6-6 选择rom_64x8模块地址锁存信号inclock 定制宏功能模块定制宏功能模块步骤步骤5图6-7 选择rom_64x8模块数据初始化文件 定制宏功能模块定制宏功能模块步骤步骤5图6-9 顶层设计中ROM的初始化内容 使用图形界面对设计进行仿真使用图形界面对设计进行仿真【例6-4】sin_wave模块的测试块time
3、scale 1ns/100psmodule test_module1;reg clk;wire7:0 data;/调用已设计好的模块sin_wave one(.clk(clk),.data(data);initial beginclk=1b0;/clk初值为0#3000$finish;/终止仿真 end/控制驱动设计块的时钟信号,时钟周期为10个时钟单位always#5 clk=clk;/clk周期为10 initial$monitor($time,sin_wave_data:%d,data);/监视输出endmodule使用图形界面对设计进行仿真使用图形界面对设计进行仿真仿真所需文件:(1)
4、设计HDL源代码:可以使用Verilog HDL语言源文件,或者Quartus产生的网表文件。(2)测试激励代码:根据设计块而设计的激励程序,由于不需要进行综合,书写具有很大的灵活性。(3)仿真模型/库:根据设计内调用的器件供应商提供的模块而定。Altera FPGA的仿真模型库在C:alteraquartusedasim_lib中。通过针对不同的目标器件选用不同的XXXX_atoms.v文件。比如使用cyclone系列器件,那就要使用cyclone_atoms.v.如果使用了ALTERA的IP核,还需要altera_mf.v文件。altera_mf.v包含了所有宏功能模块的仿真模型。如果AL
5、TERA的IP核中包括了用户原语,还需要加入220model.v文件。仿真步骤仿真步骤图6-10 仿真设置界面仿真步骤仿真步骤图6-11 仿真目录内容仿真步骤仿真步骤图6-12 新建工程窗口 图6-13为工程添加文件 仿真步骤仿真步骤图6-14 为工程添加已存在文件 图6-15 添加文件后的工程界面仿真步骤仿真步骤图6-16 编译设计中的文件 仿真步骤仿真步骤图6-17 编译结果仿真步骤仿真步骤图6-18 功能仿真前的设置仿真步骤仿真步骤图6-19选择仿真对象仿真步骤仿真步骤图6-20 仿真界面仿真步骤仿真步骤图6-21 仿真时添加clk和data两个变量于波形图的界面 仿真步骤仿真步骤图6-
6、22 仿真过程中弹出的窗口仿真步骤仿真步骤图6-23 仿真波形窗口 仿真步骤仿真步骤图6-24 设置成模拟信号显示仿真步骤仿真步骤图6-25 功能仿真的结果(图形)仿真步骤仿真步骤图6-26 时序仿真的结果(图形)使用使用modelsim读写文件读写文件【例6-5】使用modelsim读写文件timescale 1ns/100psmodule test_module;reg clk;wire7:0 data;reg0:7 mem0:63;/使用文件进行初始化的数组integer vec_file,i,j;/定义文件句柄,控制变量reg flag;/写文件完毕后flag=1读开始/调用已设计好的
7、模块sin_wave one(.clk(clk),.data(data);/监视设计块输出,变量初始化,设置仿真时间initial beginclk=1b0;flag=1b0;i=1b0;j=1b0;/clk,flag,i,j初值为0$monitor($time,sin_wave data:%d,data);vec_file=$fopen(sin_wave.dat);/打开文件#3000$finish;/终止仿真 end使用使用modelsim读写文件读写文件/控制驱动设计块的时钟信号,时钟周期为10个时钟单位always#5 clk=clk;/clk周期为10/将设计块的输出数据存放于文件,
8、同时在命令窗口中显示存放进度always(posedge clk)beginif(!flag)begin$fdisplayh(vec_file,%h,data);$display($time,i=%0d,data:%d,i,data);if(i!=6d63)begini=i+1;flag=1b0;endelse beginflag=1b1;$fclose(vec_file);endendend使用使用modelsim读写文件读写文件/用存放于文件中的数据对数组进行初始化,并将数组内容在命令窗口中显示always(posedge clk)if(flag)begin$readmemh(sin_wa
9、ve.dat,mem);if(j!=64)beginj=j+1;$display($time,t j=%0d,mem%0d=%0d,j,j,memj);endend endmodule6.2 延时延时1.延时2.时间尺度 timescale 延时延时assign#2 B=A;时间尺度时间尺度 timescale 表6-1 时间单位及其定义时间单位定义s秒(1S)ms千分之一秒(10-3S)us百万分之一秒(10-6S)ns十亿分之一秒(10-9S)ps万亿分之一秒(10-12S)fs千万亿分之一秒(10-15S)时间尺度时间尺度 timescale【例6-6】timescale命令的用法举例
10、timescale 10ns/1nsmodule test;reg set;parameter d=1.37;initialbegin$monitor($realtime,set=,set);#d set=0;#d set=1;endendmodule6.3 常用块语句常用块语句1.initial块语句2.顺序块beginend3.并行块forkjoin4.嵌套块 initial块语句块语句【例6-7】initial块语句举例1timescale 1ns/1nsmodule test_initial_0;parameter size=4;reg7:0 y;integer index;reg7:
11、0 memory0:size-1;initialbeginy=10;/初始化寄存器aregfor(index=0;indexsize;index=index+1)#5 memoryindex=index;/初始化一个memoryendendmoduleinitial块语句块语句【例6-8】initial块语句举例2timescale 1ns/1nsmodule test_initial;reg x;initial#10 x=1b1;/只有一条语句,不需要使用begin.endinitial begin x=1b0;/多条语句,需要使用begin.end#5 x=1bx;endinitial b
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Verilog HDL 数字 设计 教程 仿真技术 课件
限制150内