收藏 分享(赏)

移位寄存器,Verilog.doc

上传人:11xg27ws 文档编号:7386046 上传时间:2019-05-16 格式:DOC 页数:3 大小:38.50KB
下载 相关 举报
移位寄存器,Verilog.doc_第1页
第1页 / 共3页
移位寄存器,Verilog.doc_第2页
第2页 / 共3页
移位寄存器,Verilog.doc_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

1、对读者的假设已经掌握: 可编程逻辑基础 Verilog HDL 基础 使用 Verilog 设计的 Quartus II 入门指南 使用 Verilog 设计的 ModelSIm 入门指南内容free-running 移位寄存器自由运行移位寄存器,即在每一个时钟周期内,寄存器的内容会被左移或右移一位。该寄存器没有其他的控制信号。代码 1 free-running 移位寄存器?1234567891011121314151617181920212223module free_run_shift_reg#(parameter N=8)(/ global clock and asyn resetinp

2、ut clk,input rst_n,/ serial I/O interfaceinput s_in,output s_out );/ signal declarationreg N-1:0 r_reg;wire N-1:0 r_next;/ body/ registeralways(posedge clk, negedge rst_n)if(!rst_n)r_reg = 0;elser_reg = r_next;242526272829/ next-state logicassign r_next = s_in, r_regN-1:1;/ output logicassign s_out

3、= r_reg0;endmodule次态(next-state)逻辑是一位移位器,作用是将 r_reg 右移一个位置,然后在最高位(MSB)插入串型输入 s_in。由于 1 位移位器仅需要重新连接输入和输出信号,因此不需要任何实际的逻辑电路。Universa shift register通用移位寄存器可以载入并行数据,然后左移或者右移,抑或保持原有状态。它可实现并串操作(先载入并行输入,然后移位输出),或者串并转换(先移位输入,然后一并输出)。代码 2 万用移位寄存器?123456789101112131415161718192021222324module univ_shift_reg#(p

4、arameter N=8)(/ global clk and asyn resetinput clk,input rst_n,/ serial I/O interfaceinput 1:0 ctrl,input N-1:0 d,output N-1:0 q ); / signal declarationreg N-1:0 r_reg, r_next;/ body/ registeralways(posedge clk, negedge rst_n)if(!rst_n)r_reg = 0;elser_reg = r_next;/ next-state logic252627282930313233343536always*case(ctrl)2b00: r_next = r_reg; / no operation2b01: r_next = r_regN-2:0, d0; / shift left2b10: r_next = dN-1, r_regN-1:1;/ shift rightdefaut: r_next = d;endcase/ output logicassign q = r_reg;endmodule次态逻辑使用了一个 4 选 1 的多路选择器来选择寄存器所需的次态值。注意:d 的最低位和最高位(d0和 dN-1)被用作左移操作和右移操作的串型输入。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报