当前位置:   article > 正文

Verilog时序逻辑硬件建模设计(四)移位寄存器

verilog实现四位移位寄存器

235b7f1081b6e949101b3a568a0e022b.png

Verilog时序逻辑硬件建模设计(四)移位寄存器

-Shift Register

没有任何寄存器逻辑,RTL设计是不完整的。RTL是寄存器传输级或逻辑,用于描述依赖于当前输入和过去输出的数字逻辑。
b86062c6563e7ee60bd42dbba49f5b7d.png

在大多数实际应用中,移位寄存器用于对时钟的活动边缘执行移位或旋转操作。参考时钟信号正边缘的移位器时序如图5.27所示。如图所示时钟的每个正边缘,来自LSB的数据移位一位到下一级,因此,对于四位移位寄存器,需要四个时钟延迟才能从MSB获得有效的输出数据。

d48a8f3db4898523cbb97ed94f7c9749.png图5.27移位寄存器的时序

示例5.14中描述了串行输入串行输出移位寄存器的Verilog RTL。如示例中所述,数据“d_in”在每个时钟边缘上移位,以生成串行输出“q_out”。在正常操作期间,复位输入“reset_n”设置为逻辑“1”。为了为串行输入的任何更改生成有效的串行输出,移位寄存器需要四个时钟脉冲。

图5.28显示了用于串行输入串行输出移位寄存器的四个寄存器的综合逻辑。

210272fe49b7c99c0b1bb100e6f18908.png d04e351d81717f76127e0b0cb69ed200.png示例5.14串行输入串行输出移位寄存器的Verilog RTL 4941b5b2674689717d9274daf70c2bcf.png图5.28四位移位寄存器的综合逻辑

右移或左移

大多数实际应用都涉及数据的右移或左移。考虑涉及字符串处理的协议,其中的要求是将字符串在右侧或左侧移动一位或多个位。在这种情况下,使用双向(右/左)移位寄存器。

例5.15中描述了双向移位寄存器的Verilog RTL,数据的方向由“right_left”输入控制。对于“right_left=1”,数据向右移动;对于“right_left=0”,数据向左移动。

综合逻辑如图5.29所示,数据传输方向由“right_left”输入控制。综合逻辑由四个寄存器组成,附加组合逻辑控制数据流方向。

2dc909801c2a7e52e25ef494af4db771.png示例5.15右/左移位寄存器的Verilog RTL 511329651011b397a0e3818bd826a89a.png图5.29双向移位寄存器的综合逻辑

并行输入和并行输出(PIPO)移位寄存器

在大多数处理器设计应用中,数据需要并行传输。考虑与外部外围设备通信的四位数据总线。如果处理器和外围设备都对并行数据进行操作,则必须使用并行输入并行输出逻辑传输数据。

在这种情况下,使用PIPO寄存器。PIPO四位寄存器的逻辑图如图5.30所示。四条并行输入线分别命名为PA、PB、PC和PD和四位并行输出线被命名为QA、QB、QC和QD。PIPO寄存器在时钟信号的正边缘触发。

例5.16中描述了Verilog RTL。

四位PIPO寄存器的综合逻辑如图5.31所示。

147ddcc56a449b16b0e98dff92cf474d.png图5.30四位PIPO寄存器 a3dabfbcee5d61e58be74785b8f6f81b.png示例5.16 4位PIPO寄存器的Verilog RTL 0ae80808d5862031fd57a891ac96b817.png图5.31 4位PIPO寄存器的综合逻辑

时序和性能评估

时序是ASIC/FPGA设计中非常重要的参数。时序电路的时序收敛对于复杂的ASIC/FPGA设计至关重要。RTL设计的详细时序分析和频率计算将在后续讨论。

为了更好地理解这一点,必须对寄存器输入和寄存器输出进行监督。在实际的ASIC/FPGA设计中,Verilog代码应该被有效地写入,并且应该具有寄存器输入和寄存器输出。这样做的原因是为了更好地进行时序分析,并获得干净的寄存器到寄存器路径。

带有寄存器输出的Verilog RTL如例5.17所示。假设另一个模块驱动输入信号“a”、“b”、“c”、“d”和“select”。所有这些输入都是寄存器输入。这可以实现干净的寄存器路径和轻松的进行时序分析。

综合逻辑如图5.32所示,生成八位并行输入并行输出寄存器。该逻辑在时钟的正边缘触发。

52b8c89478ca94cfe88e4f01da34af35.png示例5.17寄存器输出的Verilog RTL eec6986bb8aa921771e04790818eb742.png图5.32寄存器输出逻辑的综合结果

1f053744e67e556d995fe18f8ad0b50c.png

数字硬件建模综述


99635c5c04aa313790a969b51c19932a.png

数字硬件建模-从另一方面理解Verilog(一)


fcd69ccf02797872d142767ce924b9b1.png

数字硬件建模-重新从另一方面理解Verilog(二)


d810f1f33a57547ee3ccc1551f927f99.png

组合逻辑硬件建模设计(一)逻辑门


42421bdd8d8243db74b67176d04f6c2c.png

组合逻辑硬件建模设计(二)算术电路


6074f37c9d87f59000a715365702ea66.png

Verilog/SV代码检查器-Lint 建模规则检查器与 Verilator


29f8ee3a2065687ae0e9f2819e08c9e8.png

Verilog组合逻辑设计指南


9482e5a9944b96bee4f3b7ada59920c0.png

Verilog时序逻辑硬件建模设计(一)锁存器D-latch和触发器Flip-Flop


e6bf3414f751201ca9c47f83eaaa8d65.png

Verilog时序逻辑硬件建模设计(二)同步和异步复位



f26b1ea223f52161f42fc5dad98ace1c.png

Verilog时序逻辑硬件建模设计(三)同步计数器



声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/603093
推荐阅读
相关标签
  

闽ICP备14008679号