低空翾翔的个人空间 https://blog.eetop.cn/1459279 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

第四篇:简记test bench与modelsim仿真(一)

已有 2225 次阅读| 2016-4-15 23:53

这一篇主要简单地记录一下test bench的搭建、modelsim的仿真,如果有时间呢,我再记录一下signal tap的使用。这次只要没设计仿真IPcore,所以呢仿真的步骤还是比较好的;然而小飞曾经用tcl写过仿真脚本...现在已经忘了....现在依稀记得test bench的写法和modelsim的简单使用,现在把我记得的或者我要忘记了的写在下面吧!

test bench也就是所谓的仿真平台,给设计的模块激励,根据模块的输出,验证模块的功能。

注:把设计文件和仿真文件分在不同的文件夹里面,在仿真文件夹中创建新的仿真文件。
首先呢就是书写测试文件,也就是.v文件。
(1)简单测试文件的书写
①首先是预编译  `timescale   1ns/100ps  //---------------
timescale是时标,1ns表示延时的时间单位,100ps表示延时的时间精度:#5  表示延时5ns,#5.1 表示延时5.1ns;#5.11  延时不到//0.01ns,因为精度只有100ps,所以0.01ns将被省略,被识别为5.1ns‘;
接下来就是模块编写了
②module xxxx();  //端口列表不用写。
③reg  xxx           //测试信号发生源,也就是给设计模块的输入信号;与连接模块的线网声明
wire XXXXX     


例化设计模块和其他的模块


⑥always #10 clk = ~clk;  //时钟产生信号,每各10ns翻转一次,时钟频率就是50M;

④将设计模块或者子模块中的某个信号拉出来:assign AAA = 被例化模块的自定义例化名.被例化模块下要拉出的信号名;
或者
assign AAA = 被例化模块的自定义例化名.被例化子模块的自定义例化名.子模块下要拉出的信号名;比如 assign AAA = cnt_16_inst.cnt_4_inst.cnt;
注意,AAA要事先被定义,当然,也可以进行隐式赋值(比如wire [3:0]
AAA = cnt_16_inst.cnt_4_inst.cnt;).

initial begin
测试信号发生源复位、初始化,
复位信号无效
end



endmodule


(2)modelsim的窗口操作

①FILE》NEW  ——》project

工程名字自定义,位置放在仿真文件夹下面,其他三个选项默认,然后进入

选择添加存在文件(如果没有跳出该窗口,可以在空白处右键,有添加》添加存在文件的选项),
然后添加设计模块文件和仿真模块文件
②编译文件(选择要编译的文件,然后点击compile;或者选compile all,编译全部。
若有错误,则可以双击该错误,进行查看错误信息(如果modelsim看到的中文是乱码,那么可以在编辑器中进行模式转换,如从ASC转换成xxx编码模式),然后修改再编译(注意,所有的目录都应该放在英文路径中)。

注:在信息栏上面有两个选项卡:library和project两个选项卡,编译完之后,文件被编译到work目录下(library上面有work的选项,点开可以看到设计和仿真的.v文件),work文件夹里面包含此次工程编译库的信息;用modelsim打开的是.mpf文件,也就是.mpf是modelsim的工程文件。

③选中library选项卡,点开work选项,选中测试模块的文件,右击,选择第二个simulation without optimistic(不进行优化代码再仿真,因为优化代码可能会把一些信号给优化掉),然后就启动了仿真。

④启动仿真后,信息栏上面的选项卡会增加一个选项:sim;也就是总共有三个选项卡在信息栏上面(Library,project,sim)
在sim选项中,左边是模块的整体结构;右击例化的设计文件,选择 ADD wire,就可以添加信号到波形窗口

⑤可以通过控制这些选项

点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 5

    粉丝
  • 2

    好友
  • 3

    获赞
  • 3

    评论
  • 589

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-3-29 06:49 , Processed in 0.028991 second(s), 13 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部