假如reg是一个串行不断输入的1bit数据,当其传输8位后停止传输,假设其8次输入的数据为
1111 1111,而rx_data本来的数据为8位的0000 0000
复制代码
1
2
3
4
5
6always@(posedge sys_clk or negedge sys_rst_n) if(sys_rst_n == 1'b0) rx_data <= 8'b0; else if (条件) rx_data <= { reg, rx_data[7:1] };
首先,满足条件下,reg的第一个数据为1,则{ 1,0000 000},因为原来的rx_data为8个0,现在只保留了高七位,相当于将其右移了一位。然后将{ 1,0000 000}重新赋值给rx_data,
等到下一次执行的时候,数据变为{1,10000 00}一直全部将reg的数据赋值给rx_data。
不仅实现了位拼接右移,同时还将一个串行数据变成一个并行数据输出。
最后
以上就是瘦瘦帽子最近收集整理的关于verilog中的位拼接移位实现串行数据转并行数据的全部内容,更多相关verilog中内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复