循环移位求问
时间:10-02
整理:3721RD
点击:
请问在Verilog里, out<={out[2:0],in}; 或者 out<={in,out[3:1]}; 这种类型的表达式具体是怎么执行的(即原理)?谢谢
一个是in往out里左移,一个是右移
flip-flop (触发器) 在时钟触发下,把输入端的数据存储起来并引到输出端。数据从输入端口到输出端口的时间取决于工艺。
左移数据或者右移数据,同时将in的数据放入数据位的高位或者低位。
功能类似>>或者<<,但是不是在最高位或者最低位移入0,而是in的数据。
一个输入放入最低位 , 一个放入最高位
就是用寄存器级联来实现啊,原理就是,寄存器的输入只在时钟的沿才能被锁存。
也可以这样:
out <= out << 1;
out[0] <= in;
这个应该不算循环移位,应该是左移右移,移位寄存器,几个D触发器的级联
