verilog学习|《Verilog数字系统设计教程》夏宇闻 第三版思考题答案(第六章)

《Verilog数字系统设计教程》夏宇闻 第三版思考题
答案合集 :个人主页verilog专栏中


1.怎样理解initial语句只执行一次的概念?

  在仿真开始时,initial 语句只执行一次,但initial 语句里面的语句可能不执行一次,因为如果是while循环,虽然initial语句是执行一次,但只要进了while循环,则会执行到仿真结束。

2.在initial 语句引导的过程中是否可以有循环语句?如果可以,是否与第1题互相矛盾?

  可以,并不互相矛盾。initial 语句确实是执行了一次,但并不意味着initial 语句过程中就不能是循环语句,两者并不矛盾。

3.怎样理解由always语句引导的过程块是不断活动的?

  always语句的过程块是不断活动的,在仿真过程中always块始终在循环的活动着,检查always语句后面的信号是否发生相应改变,这是always活动的实质,如果always语句后面没有检查的信号则将会进入一个循环,将会使仿真器锁死。

4.不断活动与不断执行有什么不同?

  不断活动是always语句不断活动检查是否满足条件(如某个信号发生改变),不断执行时always语句引导的过程中的语句不断的执行着。

5.怎样理解沿触发和电平触发的不同?

  沿触发是在某个信号在上升沿或下降沿到来时,触发执行过程块。电平触发是在某个信号发生改变时就会触发执行过程块。

6.是不是可以说沿触发是有间隔的,在一定的时间区间里只需要注意有限的点,而电平触发却需要注意无穷多个点?

  不是。沿触发是信号的上升沿或下降沿进行触发,而电平触发是在某个信号发生改变时进行触发,并不需要注意无穷多个点。

7.沿触发的always块和电平触发的always块各表示什么类型的逻辑电路的行为?为什么?

  沿触发的always块常表示时序逻辑电路,因为其和时序有很关。电平触发的always块常表示组合逻辑电路,因为只和电平有关。

8.简单叙述任务和函数的不同点。

  (1)函数只能与主模块共用同一个仿真时间单元,而任务可以定义自己的仿真时间单位;
  (2)函数不能启动任务,而任务能启动其他任务和函数;
  (3)函数至少要有一个输入变量,而任务可以没有或有多个任何类型的变量;
  (4)函数返回一个值,而任务则不返回值。

9.简单叙述 $display、 $write 和 $strobe的不同点。

   $display自动地在输出后进行换行, $write则不进行自动换行,其它都非常相似。如果许多其他语句与 $display任务在同一个时间单位执行,那么这些语句与 $display任务的执行顺序是不确定的。如果使用 $strobe,该语句总是在同时刻的其他赋值语句执行完成之后执行。

10.简单叙述Verilog1364-2001版语法规定的电平敏感列表的简化写法。

  关键词 “or” 也可以使用 “,” 来代替。

11.如何在Verilog测试模块中,利用文件的读写产生预定格式的信号,并记录有测试价值的信号?

Verilog提供了系统任务

  • 选择要转储的模块实例或模块实例信号(dumpvars)
  • 选择VCD文件的名称 ($ dumpfile)
  • 选择转储过程的起点和终点($ dumppon,$ dumpoff)
  • 选择生成检测点($ dunpall)

其使用方法如下

initial
$dumpfile("myfile.dmp");   //仿真信息转储到myfile.dmp文件
initial
$dumpvars;   //没有指定变量范围,把设计中全部信号都转储
initial
$dumpvars(1,top);//转储模块买例孜票中的1信行
                 //数1表示层次的等级只转储top下第一层信号
                 //即转储top模块中的变量,而不转储在 top 中引用
initial
$dumpvars(2,top.ml);//转储top.m1模块下两层的信号initial
$dumpvars(0.top.m1; /0表示转储top.m1模块下面各个层的所有信号

initial
begin
	$dumpon;           //启动转储过程
	#100000 $dunpoff;  //过了100000个仿真单位后,停止转储过程
end
initial
//生成一个检查点,转储所有VCD变量的现行值
$dumpall;
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值