FPGA——study1_testbench激励

FPGA——study1

新建Modelsim 工程 new–project
最好提前建好文件夹路径(空文件夹),添加
在这里插入图片描述
两个文件,

基本格式

1、时间预处理指令
时间单位1ns
时间精度1ps
时间单位>时间精度,如:

`timescale 1ns / 1ps

延时100ns

#100 rst_n = 1'b1;	

2、定义文件名称

module led_test
(
	input           clk,           // system clock 50Mhz on board
	input           rst_n,         // reset ,low active
	output reg[3:0] led            // LED,use for control the LED signal on board
);

3、定义寄存器等其他格式数据

reg [31:0]      timer;

4、输入数据用寄存器形式即(reg)进行连接,输出类型用(wire)连接
5、空右键白处单击-compile—>compile all
在这里插入图片描述
编译成功
在这里插入图片描述
点击library
在这里插入图片描述
右键simulate
在这里插入图片描述
下图空白处 右键—add to–wave–signal desigen
在这里插入图片描述
窗口如果乱的话点击 layout—reset

输入运行时间
在这里插入图片描述
在下图仿真图中点击zoom in
在这里插入图片描述显示任务
$display
d i s p l a y 系 统 任 务 用 于 打 印 信 息 , 类 似 于 C 语 言 的 打 印 。 未 指 定 显 示 格 式 时 , 默 认 显 示 的 格 式 是 十 进 制 , 另 外 还 有 display 系统任务用于打印信息,类似于 C 语言的打印。未指定显示格式时,默认显示的格 式是十进制,另外还有 displayCdispalyb, $displayo, $displayh 显示格式分别是二进制、八进制、十六进制。
$display 会在每次显示后自动换行。格式如下:
例: $display(“%b+%b=%b”,a,b,c) ;

举例说明,打开新建的 Modelsim 工程,打开 testbench 文件,添加两行代码: (这两条代码可自动换行)

$display(“hello alinx”) ;
$display(“rst_n = %d”, rst_n) ;

如遇到官方的例程不能编辑右键去掉read only

library,project中重新编译,然后library中右键—>simulate然后add to -->wave–>signal design 然后run 1ms
在这里插入图片描述
即可在输出框看到
在这里插入图片描述

write和display不同,write不换行
输入结果入下
在这里插入图片描述
可在显示字符串后加反斜杠换行
在这里插入图片描述

$write (“hello alinx\n”) ; 
$write (“rst_n = %d\n”, rst_n)

** m o n i t o r 用 于 持 续 监 测 指 定 变 量 , 只 要 变 量 发 生 了 变 化 , 即 会 触 发 monitor 用于持续监测指定变量,只要变量发生了变化,即会触发 monitormonitor,显示对应的
语句。**格式如下:
例: $monitor(“%b+%b=%b”,a,b,c) ;
在代码中添加以下代码:

Initial 
$monitor(“clk = %b”, clk) ;

在这里插入图片描述
重新编译,仿真后有
在这里插入图片描述
今天到这吧!恰饭----------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
FPGAtestbench是用于对使用硬件描述语言(HDL)设计的电路进行仿真验证的。它的主要目的是测试设计电路的功能和性能是否与预期的目标相符。编写testbench可以帮助开发者更好地理解和验证设计电路的行为。而且在FPGA行业中,具备编写testbench的能力是非常重要的,因为大部分公司都会让你来编写testbench测试文件。 一个基本的testbench通常包含三个部分:信号定义、模块接口和功能代码。信号定义部分用于定义输入输出信号的类型和大小,这些信号需要使用register类型来存储输入的数据。模块接口部分定义了需要测试的模块的输入输出接口。功能代码部分则包含了对测试模块进行功能验证的代码。 编写testbench时,需要遵循规范化的设计和苛刻的结构。testbench的编写规范可以参考Modelsim仿真步骤的相关文档。 总结起来,FPGAtestbench是对设计电路进行仿真验证的重要工具,它需要包含信号定义、模块接口和功能代码三个部分,并且需要遵循规范化的设计和苛刻的结构。掌握编写testbench的能力对于在FPGA行业中的发展非常重要。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【FPGA自学总结】Testbench测试代码推荐编写规范](https://blog.csdn.net/zhaogoudan/article/details/111933722)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

位沁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值