综合出错的问题
时间:10-02
整理:3721RD
点击:
我在做一设计时遇到如下问题:前仿真没有问题,但是综合时出现如下错误:
cannot mix blocking and non blocking assignment on signal <dout>.点击错误指向如下代码,
input clk,rst,d_in;
output dout;
reg d_out;
wire dout;
always @(posedge clk or posedge rst)
begin
if (rst)
d_out = 0;
else if (d_in <= 8'b00000001)
d_out <= 1;
else
d_out <=0;
end
assign dout = d_out;
说是dout的问题,我这样定义不对吗?
cannot mix blocking and non blocking assignment on signal <dout>.点击错误指向如下代码,
input clk,rst,d_in;
output dout;
reg d_out;
wire dout;
always @(posedge clk or posedge rst)
begin
if (rst)
d_out = 0;
else if (d_in <= 8'b00000001)
d_out <= 1;
else
d_out <=0;
end
assign dout = d_out;
说是dout的问题,我这样定义不对吗?
d_out = 0;
d_out <= 1;
阻塞和非阻塞混用,
请看基础知识
多谢楼上,就是这里的问题!
2楼正解
一般时钟的时序逻辑,采用非阻塞。
用 reg定义之
在 rst的时候 也要用 <=
