Verilog学习日志(2021.7.31)

2021.7.31

1.结合王红大大和我之前的考研笔记,重新很快地过一遍数电里面触发器和时序逻辑的内容。

2.初步尝试HDLbits里面的时序逻辑题。

(80)设计一个最简单的上升沿D触发器。

//注:使用always过程块进行时序逻辑的描述时,

上升沿为:

always @ ( posedge clk );

下降沿为:

always @ ( negedge clk );

(81)设计一个处理8位数据的上升沿D触发器。

(82)在(81)的基础上加一个高电平有效的同步复位信号。

考虑以下两种代码:

 

//上面这种代码把赋值语句放在reset信号的前面,虽然从实际功能的角度是行得通的,但是看起来有点奇怪...感觉reset信号应该是优先级最高的信号才对...而且没有考虑到所有可能性,所以会综合出锁存器。

​​​​​​​

 

//这种代码看起来就舒服多了,而且条件语句里面每种可能性都有考虑到,完美地避开了综合出锁存器这一结果。

//问:在if-else语句中,如果出现“else;”这样的句子,会不会综合出锁存器

(83)在(81)的基础上,如果reset信号为1,则对q进行赋值。

(84)之前的reset信号都是同步信号,这里变成异步信号。

//注:

①若always引导句里有两个以上触发条件时,要注意是“与”关系还是“或”关系。

“与”关系就用关键字“and”,或关系就用关键字“or”。

②其实同步和异步的区别无非就是触发敏感度(优先级)的区别。异步复位信号即使clk未满足上升沿/下降沿的要求,只要激活,马上生效。所以可以把它写在always语句块的引导句里。

③always @ ( posedge clk or posedge reset );

这就是一个典型的带异步复位信号的时序电路。

(85)用一个二位信号来控制16位D触发器中的前后8位是否保持。

//我用了一种比较行为级的代码风格:case语句来对byte_enable变量进行判断。

(86)设计一个D锁存器:ena使能的状态下,q始终等于d。

//在正规的逻辑电路当中,锁存器的综合和实现会消耗大量的资源,故会出现warning,慎用。

(87)设计一个带异步复位的上升沿D触发器。

(88)设计一个带同步复位的上升沿D触发器。

3.明天争取把HDL bits里面Latch and Flip-Flop的小节做完。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值