Verilog 不允许将Synth 8-2576程序赋值到非寄存器触发器
我的Verilog代码有一些问题。错误如标题中所述。我不知道这个错误的来源 这是我的密码:Verilog 不允许将Synth 8-2576程序赋值到非寄存器触发器,verilog,xilinx,vivado,Verilog,Xilinx,Vivado,我的Verilog代码有一些问题。错误如标题中所述。我不知道这个错误的来源 这是我的密码: module red_pitaya_trigger_manager( input dac_clk_i, input trig_a_i, input trig_b_i, input master_trig, output trig_out_ch0, output trig_out_ch1 );
module red_pitaya_trigger_manager(
input dac_clk_i,
input trig_a_i,
input trig_b_i,
input master_trig,
output trig_out_ch0,
output trig_out_ch1
);
reg trig_out_ch0;
reg trig_out_ch1;
always @(posedge dac_clk_i) begin
if (master_trig == 1'b1) begin
trig_a_i <= 1'b0;
trig_b_i <= 1'b0;
trig_out_ch0 <= master_trig;
trig_out_ch1 <= master_trig;
end
else if (master_trig == 1'b0) begin
//master_trig <= 1'b0;
trig_out_ch0 <= trig_a_i;
trig_out_ch1 <= trig_b_i;
end
end
endmodule
模块红色火龙果触发器管理器(
输入dac_clk_i,
输入trig_a_i,
输入trig_b_i,
输入主触发器,
输出触发输出ch0,
输出触发输出ch1
);
reg trig_out_ch0;
reg trig_out_ch1;
始终@(posedge dac_clk_i)开始
如果(主触发==1'b1)开始
trig_a_i这里有两个问题。Toolic是对的,其中一个问题是您试图为输入赋值,而错误消息并没有太大帮助。但是,由于工具首先注意到的另一个问题,您会收到错误消息
当您在没有类型的情况下声明输入和输出时,默认情况下,它们被假定为wire
。在始终块中使用指定导线时,这里有两个问题。Toolic是对的,其中一个问题是您试图为输入赋值,而错误消息并没有太大帮助。但是,由于工具首先注意到的另一个问题,您会收到错误消息
当您在没有类型的情况下声明输入和输出时,默认情况下,它们被假定为wire
。并且您正在使用
module red_pitaya_trigger_manager(
input dac_clk_i,
input trig_a_i,
input trig_b_i,
input master_trig,
output trig_out_ch0,
output trig_out_ch1
);
reg trig_a_i; // note
reg trig_b_i;
reg trig_out_ch0;
reg trig_out_ch1;
always @(posedge dac_clk_i) begin
if (master_trig == 1'b1) begin
trig_a_i <= 1'b0;
trig_b_i <= 1'b0;
trig_out_ch0 <= master_trig;
trig_out_ch1 <= master_trig;
end
else if (master_trig == 1'b0) begin
//master_trig <= 1'b0;
trig_out_ch0 <= trig_a_i;
trig_out_ch1 <= trig_b_i;
end
end
endmodule