数字设计自学-数字系统设计教程5:自写思考题答案

自学数字设计,针对《数字系统设计教程》中部分思考题做整理

第5章思考题

1.为什么建议在编写verilog语句时,如果用到if 语句,建议大家把else 情况也考虑在内?

2.用if else if else 语句和用case endcase 表示不同的条件下多个分支是完全相同的,还是有什么不同?

3.如果case语句的分支条件没有覆盖所有的组合可能,定义了default和没有定义有什么不同?

4.仔细阐述case,casex 和casez之间的不同?

5.forever 语句如果运行了,在它下面的语句是否还能运行?它位于begin end 和位于fork join 之间有什么不同?

6.forever 语句和repeat语句是否能独立于过程块存在,即能否不在initial 或者always块中存在?

7.用for循环语句为存储器许多单元赋值时是否需要时间?为什么如果不定义时间延迟,他可以不需要时间就把不管多大的存储器赋值完毕?

8.for循环是否可以表示可以综合的组合逻辑?请举例说明。

9.比较

10.声明一个名为oscillate 的寄存器变量并将它初始化为0,其每30个时间单位进行一次取反操作。不要使用always块

11.设计一个时钟周期为40个时间单位的时钟信号,其占空比为25%。使用always和initial块进行设计,将其在仿真0时刻的值初始化为0

12.见程序

13.12中包括的是非阻塞过程赋值语句,则答案是什么?

14.下面例子中的d最终值是什么?

15.设计带有同步清零信号的D触发器,使用设计出的D触发器输出一个周期为10个时间单位的时钟信号;

16.同15,设计出带有异步清零信号的D触发器

17.用wait语句设计一个电平敏感的锁存器,该锁存器的输入信号为d和clock,输出为q;其功能为clock=1时,q=d;

18.使用条件语句完成四选一多路选择器设计,外部端口必须保持不变

19.使用case语句设计八功能的算术运算单元(ALU)

20.使用While循环语句设计一个时钟信号发生器。其时钟信号的初值为0,周期为十个时间单位。

21.使用for 语句完成寄存器类型数组初始化

22.使用forever 语句完成一个时钟信号,周期为10,占空比为百分之40,初值为0;

答:

1.因为如果没有配套的else语句,在不满足if条件语句时,会保持原来的状态,从而产生一个锁存器,并不是产生高阻态。

2.不是完全相同的,首先case语句更加直观,其次case语句提供了处理分支表达式中存在高阻态z与不定值z的情况

3.产生锁存器的区别

4.case是全等x是x,z是z,casez是z与任何值都相等,不将z进行比较,casex是x和z与任意值都相等,不将x和z进行比较

5.不能运行,fork是并行的,forever并不影响下面语句的运行

6.forever语句不能独立于过程块,而repeat能够独立于过程块

7.for语句如果定义了时间延迟则需要时间,否则不需要时间。因为循环的边界是确定的,那么在综合时该循环语句被认为是重复的硬件结构。

8.for语句实现的乘法器可以综合,可以表示可综合的组合逻辑。

9.第一个不能按照时间节拍进行赋值,第二个可以

10. reg oscillate

    initial 

     beigin  oscillate=0;

           forever   #30   oscillate=~oscillate ; oscillate=!oscillate;

     end

11. initial

       begin

         clock=1; cnt=0;

forever #30 clock=~clock

always #30 clock=~clock

initial

  begin

   clock=0;

   always

       begin

   #30 clock=0;

  #10 clock=1;

      end

end

  12.

000;

13

顺序不一定,阻塞赋值一共经历35个时间单位,非阻塞赋值一共经历20个时间单位

14. 1 b=0,c=0 b或c=0

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值