verilog 代码在 isim(xilinx 14.2)中工作,但在 spartan6 上不工作
verilog code is working in isim(xilinx 14.2) but is not working onspartan6
我已经用 verilog (xilix 14.2) 编写了一个简单的计数器代码。该代码在 isim 中正常工作,但我无法将其转储到 spartan6 上。当我尝试转储代码时,spartan 6 上的红灯亮起并且代码未转储。请让我知道我需要做的改变。
module clk(int_clk,ext_pulse,reset,pos_count,neg_count);
input int_clk;
input ext_pulse;
input reset;
output reg [7:0] pos_count;
output reg [7:0] neg_count;
reg [7:0] count;
always@(posedge int_clk)
if(reset)
begin
pos_count<=0;
neg_count<=0;
end
else if(ext_pulse)
begin
neg_count<=neg_count+1;
pos_count<=0;
end
else
begin
pos_count<=pos_count+1;
neg_count<=0;
end
endmodule
嘿,你还没有把 begin..end 放在 always 块中。此外,您使用了通常不可取的同步重置。我对您的代码进行了一些更改。顺便说一句,你生成了比特流吗?
module clk(int_clk,ext_pulse,reset,pos_count,neg_count);
input int_clk;
input ext_pulse;
input reset;
output reg [7:0] pos_count;
output reg [7:0] neg_count;
reg [7:0] count; //This reg is unused
always@(posedge int_clk or posedge reset) //I am assuming you want active high reset
begin
if(reset)
begin
pos_count<=0;
neg_count<=0;
end
else if(ext_pulse)
begin
neg_count<=neg_count+1;
pos_count<=0;
end
else
begin
pos_count<=pos_count+1;
neg_count<=0;
end
end
endmodule
我已经用 verilog (xilix 14.2) 编写了一个简单的计数器代码。该代码在 isim 中正常工作,但我无法将其转储到 spartan6 上。当我尝试转储代码时,spartan 6 上的红灯亮起并且代码未转储。请让我知道我需要做的改变。
module clk(int_clk,ext_pulse,reset,pos_count,neg_count);
input int_clk;
input ext_pulse;
input reset;
output reg [7:0] pos_count;
output reg [7:0] neg_count;
reg [7:0] count;
always@(posedge int_clk)
if(reset)
begin
pos_count<=0;
neg_count<=0;
end
else if(ext_pulse)
begin
neg_count<=neg_count+1;
pos_count<=0;
end
else
begin
pos_count<=pos_count+1;
neg_count<=0;
end
endmodule
嘿,你还没有把 begin..end 放在 always 块中。此外,您使用了通常不可取的同步重置。我对您的代码进行了一些更改。顺便说一句,你生成了比特流吗?
module clk(int_clk,ext_pulse,reset,pos_count,neg_count);
input int_clk;
input ext_pulse;
input reset;
output reg [7:0] pos_count;
output reg [7:0] neg_count;
reg [7:0] count; //This reg is unused
always@(posedge int_clk or posedge reset) //I am assuming you want active high reset
begin
if(reset)
begin
pos_count<=0;
neg_count<=0;
end
else if(ext_pulse)
begin
neg_count<=neg_count+1;
pos_count<=0;
end
else
begin
pos_count<=pos_count+1;
neg_count<=0;
end
end
endmodule