微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > Testbench中使用while的问题

Testbench中使用while的问题

时间:10-02 整理:3721RD 点击:
使用以下语句:
  reg rx_rdy;
  wire rx_rdy1= memory read回来的值;
   rx_rdy = 0;
   while(rx_rdy != 1)
   begin
        memory_read8( ADDR, 1);
        rx_rdy = rx_rdy1;
   end
  意思是读取ADDR地址的值,取其中一位,赋给rx_rdy。当rx_rdy =1 时,就跳出循环,其它时间则不停的读取该地址的值。
  但在实际仿真时, rx_rdy = rx_rdy1;这条语句没有正确执行。
  若写成 @(posedge CLK) rx_rdy = rx_rdy1; 则完全没有问题。我没有完全想明白。

不加@(posedge CLK) ,while语句在memory_read后立即执行rx_rdy = rx_rdy1,又立即回到while条件的判断,没有任何时间延时。你的没有执行是什么意思呢?

学习。学习

2楼说的应该是关键所在。

貌似2楼正解~



   谢谢回复,从语句上的确可以这么理解,但从波形上看就像该语句没有执行一样

Wire ready1 n那句只是初始化赋值一次 后面不会改变

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

网站地图

Top