这个代码是怎么实现移位输出码的的?

2019-07-16 02:07发布

这个代码是我在夏老师的Verilog HDL教程上看到的一个关于序列检测器的验证代码:
'timescale 1ns/1ns
module t;
reg clk,rst;
reg [23:0] data;
wire z,x;
assign x=data[23];
initial
     begin
          clk<=0;
          rst<=1;
          #2 rst<=0;
          #30 rst<=1; //复位信号
          data='b1100_1001_0000_1001_0100; //码流数据
     end
always #10 clk=~clk; //时钟信号
always @(posedge clk) //移位输出码流
             data={data[22:0],data[23]};
.............(后面略去了)

always @(posedge clk) //移位输出码流
             data={data[22:0],data[23]};
我想问的就是这两句是怎么实现将码移位输出的
asx.jpg
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
ytphrx
1楼-- · 2019-07-16 07:07
data={data[22:0],data[23]}每执行一次这个指令左边第23位数据会移动到右边第0位数据后边,这样就实现了循环移位.
重仪打工的
2楼-- · 2019-07-16 11:33
 精彩回答 2  元偷偷看……
hexiewangzi
3楼-- · 2019-07-16 13:25
大括号的妙用,呵呵

一周热门 更多>