当前位置:网站首页>verilog学习|《Verilog数字系统设计教程》夏宇闻 第三版思考题答案(第七章)
verilog学习|《Verilog数字系统设计教程》夏宇闻 第三版思考题答案(第七章)
2022-08-02 14:02:00 【驚蟄_】
《Verilog数字系统设计教程》夏宇闻 第三版思考题
答案合集 : Verilog学习系列 第三部分
1.为什么在多模块调试的情况下$ monitor需要配合$ monitoron和 $monitoroff来工作?
$ monitoron和 $ monitoroff 任务的作用是通过打开和关闭监控标志来控制监控任务$ monitor的启动和停止,这样使得程序员可以很容易地控制$ monitor何时发生。$ monitoron则用于打开监控标志,启动监控任务$ monitor 。通常在通过调用$ monitoron来启动$ monitor时不管$ monitor参数列表中的值是否发生改变,总是立刻输出显示当前时刻参数列表中的值,这用于在监控的初始时刻设定初始比较值。在默认情况下,控制标志在仿真的起始时刻就已经打开了。在多模式调试的情况下,许多模块中都调用了$ monitor, 因为任何时刻只能用一个$ monitor起作用,因此需配合$ monitoron与$ monitoroff使用,把需要监视的模块用$ monitor打开,在监视完毕后及时用$ monitoroff关闭,以便把$monitor 让给其他模块使用。.
2.请用$random配合求模运算编写:
(1)用于测试的跳变沿抖动为周期1/10的时钟波形。
(2)随机出现的脉宽随机的窄脉冲。
module random_pulse(dout);
output [9:0] dout;
reg [9:0] dout;
integer delay;
initial
begin
#10 dout = 0;
for(k=0;k<100;K=K+1)
begin
delay = {
$random}%10;
#delay dout = 1;
#delay dout = 0;
end
end
endmodule
3.Verilog的编译预处理与C语言的编译预处理有什么不同?
Verilog的编译预处理,在编译处理命令之前要以 ‘ ` ’ 开头
4. 请仔细阐述 `timescale编译预处理的作用?
`timescale命令用来说明跟在该命令后的模块的时间单位和时间精度。使用 'timescale命令可以在同一个设计里包含采用了不同的时间单位的模块。
5.不同`timescale定义的多模块仿真测试时需要注意什么?
如果在同一个设计里,多个模块中用到的时间单位和时间精度单位不同,需要用到以下的时间结构:
(1)用`timescale命令来声明本模块中所用到的时间单位和时间精度;
(2)用系统任务$printtimcscale来输出显示一个模块的时间单位和时间精度;
(3)用系统函数 $tirme 和 $realtime及%t 格式声明来输出显示 EDA工具记录的时间信息。
6.为什么说系统任务$readmem可以用来产生用于算法验证的极其复杂的测试用数据流?
在 Verilog HDL程序中有两个系统任务$readmemb 和 $readmemh,并用来从文件中读取数据到存储器中,这两个系统任务可以在仿真的任何时刻被执行使用。复杂数据可以用C语言产生,存在文件中,用 $readmem 取出存入存储器,在按节拍输出,这在验证算法逻辑电路时特别看用。
7.为什么说熟练地使用条件编译命令可以使源代码有更大的灵活性,可以适用于不同的实现对象﹐如不同工艺的ASIC或速度规模不同的FPGA或CPLD,从而为软核的商品化创造条件?
合理的使用条件编译和条件执行预处理可以使测试程序适应不同的编译环境,也可以把不同的测试过程编写到一个统一的测试程序中去,可以简化测试的过程,对于复杂设计的验证模块的编写很有实用价值。
边栏推荐
猜你喜欢
随机推荐
[ROS] (01) Create ROS workspace
[ROS](04)package.xml详解
Flask-RESTful请求响应与SQLAlchemy基础
使用云GPU+pycharm训练模型实现后台跑程序、自动保存训练结果、服务器自动关机
IDEA打包jar包
The future of financial services will never stop, and the bull market will continue 2021-05-28
MobileNet ShuffleNet & yolov5替换backbone
Unit 5 Hold Status
Unit 8 Middleware
Basic operations of 8583 sequential stack
drf视图组件
跑yolov5又出啥问题了(1)p,r,map全部为0
Unit 10 Continuous Tuning
8576 顺序线性表的基本操作
网络剪枝(1)
Raft对比ZAB协议
深度学习框架pytorch快速开发与实战chapter4
Flask框架
Unit 15 Paging, Filtering
logback源码阅读(二)日志打印,自定义appender,encoder,pattern,converter