微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 循环移位求问

循环移位求问

时间: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触发器的级联

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top