我有一个Verilog块(block a),它用一个相对慢的时钟采样一个串行信号,然后根据串行数据的内容将数据放入几个寄存器中。
最终,这些数据需要进入多个AXI从寄存器,因为块A是较大的AXI从外围设备的一部分。更快的AXI时钟驱动另一个块(块B),该块处理与ARM内核的AXI事务。
采样时钟将数据记录到Block A输出寄存器中,因此这些数据就在那里等待被放置到axis寄存器中。(我想)我想要某种多维移位寄存器来把这些数据放到AXI时钟域,类似于:
... 输入线轴时钟,输入线[5:0]数据输入,输出线[5:0]数据输出。。。reg[5:0]数据_buf[2:0];分配数据输出=数据输出[2]。。。始终@(posedge axi_clk)开始数据buf[2:0]<={data_buf[1:0],data_in};终止
我希望在每个时钟上并行移位所有6位数据,而不是一次移位一位。
我该怎么做呢?原谅伪代码;到目前为止,我所做的一切都抛出了错误,而且我还没有找到我所尝试做的示例代码,或者确认使用容易读懂的代码是可能的。
PS -我的团队不想使用SystemVerilog,但是任何版本的VHDL或Verilog都是可以接受的。