|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
最近在接手维护离职同事的项目,FPGA控制的多信号采集存储系统。没想到他几万行的代码都没写注释,头都大!!看代码的时候发现他经常用下来的语句来调整时序:
- module example(iclk,idata,odata);
- input iclk;
- input idata;
- output odata;
- reg rdata1,rdata2,rdata3;
- always@(posedge iclk)
- begin
- rdata1<=idata;
- rdata2<=rdata1;
- rdata3<=rdata2;
- end
- assign odata = rdata3;
- endmodule
复制代码
请问这种这种延时靠谱吗,是他比较厉害规划出要设置几个reg来控制延时,还是这样写不好?
很多时候他的设计,嵌套在大模块底下的小模块的一些判断下降沿的语句:
- module example2(imainclk,idata,odata);
- input imainclk,idata;
- output odata;
- reg rdata1,rdata2;
- always@(posedge imainclk)
- begin
- rdata1<=idata;
- rdata2<=rdata1;
- if(rdata2 == 1 && rdata1 == 0)
- odata<=1;
- else
- odata <=0;
- end
- endmodule
复制代码
请问各位大大,这样的他为什么要这样写,改成if(posedge idata)会有什么区别啊? |
|