永发信息网

Verilog综合时延迟#用不了了,如何解决

答案:3  悬赏:0  手机版
解决时间 2021-04-07 04:56
  • 提问者网友:喧嚣尘世
  • 2021-04-06 12:02
我想实现这样一个东西。就是每当a变化时,a的值会延迟一段时间再赋值给b,求各位大神如何实现啊~~,我们用的板子产生的是50Mhz的
wire a;

reg b;
always @ (a)
begin
#100000
b=a;
end
最佳答案
  • 五星知识达人网友:独钓一江月
  • 2021-04-06 13:29
这个简单,你在always里面加一个计数过程,计数到10000时把a的值赋给b。。
还有你这个程序这么写是很不好的,没有时钟啊。。一般都在时钟的变化沿来控制其他变量变化的。。你的输入端口肯定要有个clk,然后用ucf约束到对应的板子的50Mhz的时钟引脚上。。不然怎么下板子
全部回答
  • 1楼网友:迟山
  • 2021-04-06 14:39
#这个只能仿真用的,要定时的话,设计一个定时器吧。 再看看别人怎么说的。
  • 2楼网友:孤独的牧羊人
  • 2021-04-06 14:28
需要定义一个计数器,以下代码供参考 reg [7:0] a_buf; always @ (posedge clk or negedge rst_n) if(!rst_n) a_buf <= 8'b0; else a_buf <= a; always @ (posedge clk or negedge rst_n) if(!rst_n) cnt <= 20'b0; else if (cnt >= 20'd100000) cnt <= 20'b0; else if (a_buf != a) cnt <= 20'b1; else if (cnt >= 20'b1) cnt <= cnt + 1'b1; always @ (posedge clk or negedge rst_n) if(!rst_n) b <= 8'b0; else if (cnt == 20'd100000) b <= a;
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯