Verilog移位寄存器
前言
今天更新一节寄存器相关内容,其中涉及CRC校验的内容是用线性反馈移位寄存器搭建而成的。
题库
题目描述1:
构建一个4bit的移位寄存器(右移),含异步复位、同步加载和使能
- areset:让寄存器复位为0
- load:加载4bit数据到移位寄存器中,不移位
- ena:使能右移
- q:移位寄存器中的内容
Solution1:
module top_module(
input clk,
input areset, // async active-high reset to zero
input load,
input ena,
input [3:0] data,
output reg [3:0] q);
always @(posedge clk or posedge areset)begin
if(areset)begin
q <= 4'b0;
end
else if(load) begin
q <= data;
end
else if(ena)begin
q <= {1'b0,q[3:1]};
end
else begin
q <= q;
end
end
endmodule
题目描述2:
构建一个100位的左右旋转器,同步load,左右旋转需使能。旋转器从另一端输入移位的位元,不像移位器那样丢弃移位的位元而以零位移位。如果启用,旋转器就会旋转这些位,而不会修改或丢弃它们。
- load:加载100位的移位寄存器数据
- ena[1:0]:2’b01 右转1bit; 2’b10 左转1bit;其他情况不转
- q:旋转器内容
Solution2:
module top_module(
input clk,
input load,
input [1:0] ena,
input [99:0] data,
output reg [99:0] q);
always @(posedge clk) begin
if(load) begin
q <= data;
end
else begin
case (ena)

博客主要更新Verilog移位寄存器相关内容,涉及用线性反馈移位寄存器搭建CRC校验。给出多个题目,如构建不同位数的移位寄存器、旋转器等,还包含线性移位寄存器、Galois LFSR等题目,并给出解答。最后提到更新部分答案及后续安排。
最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



