有关于verilog中#延时符号的问题
时间:10-02
整理:3721RD
点击:
话说在verilog中不可综合的语句不是只能用于写testbench吗?麻烦哪位大神帮忙看看,在下面这个程序中(这是个RTL程序模块中的一部分)为什么就可以使用#延时符号,RTL级不是可以综合的吗?assign #1 ClrWBlock = RDone | RAbort | WRetry & ~WOffsetEq0;
assign #1 SetWBlock = WrBuf & (RBase == (WAddr + 1'b1) | RBase == (WAddr + 2'b11));
always @(posedge Clk or negedge Rst)
if(~Rst)
WBlock <= 1'b0;
else if(ClrWBlock)
WBlock <= 1'b0;
else if(SetWBlock)
WBlock <= 1'b1;
assign #1 ClrRBlock = WDone;
assign #1 SetRBlock = RdBuf & WBase==(RAddr+1'b1)
| RAbort & ~(RFrmWordLen_2 == ROffset) & WBase == NextRFrmWordAddr;
always @(posedge Clk or negedge Rst)
if(~Rst)
RBlock <= 1'b1;
else if(ClrRBlock)
RBlock <= 1'b0;
else if(SetRBlock)
RBlock <= 1'b1;
assign #1 SetWBlock = WrBuf & (RBase == (WAddr + 1'b1) | RBase == (WAddr + 2'b11));
always @(posedge Clk or negedge Rst)
if(~Rst)
WBlock <= 1'b0;
else if(ClrWBlock)
WBlock <= 1'b0;
else if(SetWBlock)
WBlock <= 1'b1;
assign #1 ClrRBlock = WDone;
assign #1 SetRBlock = RdBuf & WBase==(RAddr+1'b1)
| RAbort & ~(RFrmWordLen_2 == ROffset) & WBase == NextRFrmWordAddr;
always @(posedge Clk or negedge Rst)
if(~Rst)
RBlock <= 1'b1;
else if(ClrRBlock)
RBlock <= 1'b0;
else if(SetRBlock)
RBlock <= 1'b1;
综合工具可以忽略#符号,所以该代码不影响综合。
你这些代码属于testbench(测试激励),为仿真用的,产生clk等测试信号,功能验证。
你这些代码属于testbench(测试激励),为仿真用的,产生clk等测试信号,功能验证。
你这些代码属于testbench(测试激励),为仿真用的,产生clk等测试信号,功能验证。
你这些代码属于testbench(测试激励),为仿真用的,产生clk等测试信号,功能验证。你这些代码属于testbench(测试激励),为仿真用的,产生clk等测试信号,功能验证。
在写逻辑设计代码时也会带#延迟信息,是为了更符合实际电路状况,综合没有影响的。
谢谢
