一段fpga移位代码看不懂
答案:2 悬赏:10 手机版
解决时间 2021-01-30 07:51
- 提问者网友:心如荒岛囚我终老
- 2021-01-29 11:42
一段fpga移位代码看不懂
最佳答案
- 五星知识达人网友:玩家
- 2021-01-29 11:53
REG_tmp := Q_tmp & SI;
REG_tmp 是3位二进制数,Q_tmp,是2位二进制数,SI是1位二进制数。意思就是一个2位数和1个1位数合起来一个3位数赋给1个3位数。
Q_tmp <= REG_tmp(1 DOWNTO 0);
写成Verilog就是 :
{Q_tmp[1],Q_tmp[0]}<={Q_tmp[0],SI}
时钟沿上升沿作用下 把输入的SI移到Q_tmp[0]上,Q_tmp[0]移到Q_tmp[1];
第一个clk吧SI移到Q_tmp[0],现在SI就是Q_tmp[0],在下个clk他又移到Q_tmp[1]。追问您的意思我清楚了,就是说在对SI信号进行移位操作,在第一个CLK上升沿移动到Q_tmp[0],然后在第二个CLK上升沿将SI在上一个CLK时的数值移动到Q_tmp[1],然后把他在这一个CLK的数值移动到Q_tmp[0],也就是实现了在Q_tmp输出两个连续的SI信号。不知道这样理解是否正确,还有个问题就是这段代码是出现在接口电路中的,想问一下您这样子的信号输出有什么作用呢?
REG_tmp 是3位二进制数,Q_tmp,是2位二进制数,SI是1位二进制数。意思就是一个2位数和1个1位数合起来一个3位数赋给1个3位数。
Q_tmp <= REG_tmp(1 DOWNTO 0);
写成Verilog就是 :
{Q_tmp[1],Q_tmp[0]}<={Q_tmp[0],SI}
时钟沿上升沿作用下 把输入的SI移到Q_tmp[0]上,Q_tmp[0]移到Q_tmp[1];
第一个clk吧SI移到Q_tmp[0],现在SI就是Q_tmp[0],在下个clk他又移到Q_tmp[1]。追问您的意思我清楚了,就是说在对SI信号进行移位操作,在第一个CLK上升沿移动到Q_tmp[0],然后在第二个CLK上升沿将SI在上一个CLK时的数值移动到Q_tmp[1],然后把他在这一个CLK的数值移动到Q_tmp[0],也就是实现了在Q_tmp输出两个连续的SI信号。不知道这样理解是否正确,还有个问题就是这段代码是出现在接口电路中的,想问一下您这样子的信号输出有什么作用呢?
全部回答
- 1楼网友:神鬼未生
- 2021-01-29 12:38
实际上就是在CK信号上升沿出现时,把Q_tmp信号后面加上SI后又重新赋值给了Q_tmp,
直白的说,这个程序就是复位信号来的话,Q_tmp信号清零;否则如果时钟信号来的话,在Q_tmp信号后加上SI。
直白的说,这个程序就是复位信号来的话,Q_tmp信号清零;否则如果时钟信号来的话,在Q_tmp信号后加上SI。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯