微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 请教高手 verilog 综合的问题

请教高手 verilog 综合的问题

时间:10-02 整理:3721RD 点击:
如果在时钟上升沿的时候对一个reg A进行赋值
如果想在时钟上升沿将reg A 的值赋给reg B ,reg B的值是否会不确定呢?
always @(posedge clk)
sr<= {sr[6:0],sda};  //移位寄存器
.
.
.
mem <= sr;
之前我用时钟下降沿来做将sr的值赋给mem的动作,则在综合时出现
warning : The register 'mem[7]' may not be optimally implemented because of a lack of compatible components with correct clock/enable phase.
如果用时钟上升沿来做将sr的值赋给mem的动作,则没有出现warning,但还没有调出想要的结果。
这个问题是怎么回事,望指教!

always @(posedge clk)
sr<= {sr[6:0],sda};  //移位寄存器
.
.
.
mem <= sr;
这个有问题吧,如果我没有理解错你的意思的话,应该是
always @(posedge clk)begin
sr<= {sr[6:0],sda};  //移位寄存器
.
.
.
mem <= sr;
end

没有完全把代码写出来
只是意思一下
问下问题
所以没写 begin end

那明白你的意思了,你可以用一个更高的时钟去采目前你用的时钟的沿,这样上升沿移位,下降沿赋值就可以了
对一个时钟的上升沿和下降沿都操作的话会有warning的

不明白你要的结果是什么 请讲清楚
上升下降沿都是OK的,虽然推荐使用上升沿 WARNING 你可以不理会

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

网站地图

Top