Verilog 我得到这个错误vlog-13069
首先,对不起我的英语水平 我正在学习Verilog,我有这个代码Verilog 我得到这个错误vlog-13069,verilog,modelsim,Verilog,Modelsim,首先,对不起我的英语水平 我正在学习Verilog,我有这个代码 module paralelo_serie ( data_in,clk, D_serie, nSyn, Done ); input wire [12:0] data_in; input clk; output reg D_serie, nSyn, Done; genvar i; 84 if (data_in == 0) Done= 1; else.... 当我尝试编译此代码时,会收到以下错误消息: 错误:(vlog-1306
module paralelo_serie ( data_in,clk, D_serie, nSyn, Done );
input wire [12:0] data_in;
input clk;
output reg D_serie, nSyn, Done;
genvar i;
84 if (data_in == 0) Done= 1;
else....
当我尝试编译此代码时,会收到以下错误消息:
错误:(vlog-13069)C:/Users/Pedro/Documents/master/asignaturas/primer cuatrimestre/Metodologia de desño y herramientas cad/proyecto digital/proyecto digital.v(84):接近“=”:语法错误,意外“=”
错误:C:/Users/Pedro/Documents/master/asignaturas/primer cuatrimestre/Metodologia de diseño y herramientas cad/proyecto digital/proyecto digital.v(84):(vlog-13205)在“完成”后的范围内发现语法错误。是否缺少一个“::”
我是这门语言的初学者,我不知道发生了什么。我在代码中多次遇到这个错误,但有时我可以通过将reg改为wire和其他时间将阻塞分配改为no blocking来解决它。。。我真的不知道我该怎么解决,我真的很沮丧。。。请帮忙,你是我最后的希望
抱歉,我忘了,我使用modelsim 10.4学生版,因为toolic提到了
84
,看起来它只是从代码中意外剪切粘贴而来
If语句,除非它们用于需要包含在进程中的generate语句(有些人称之为块)。这可以是首字母
或始终
对于组合逻辑:
always @* begin
if (data_in == 0) begin
Done = 'b1;
end
else begin
Done = 'b0;
//...
end
end
如果不在else分支中定义Done,将导致创建闩锁
在学习过程中,我建议使用begin end语句和缩进代码,因为这有助于澄清代码的结构,并使打字更容易识别
如果Done
作为一根电线留下,您可以直接使用:
assign Done = (data_in == 0) ;
另一方面,如果希望同步驱动Done
:
always @(posedge clk) begin
if (data_in == 0) begin
Done <= 'b1;
end
else begin
//...
end
end
始终@(posedge clk)开始
如果(数据_in==0)开始
何时执行if(data\u in==0)
语句?