код verilog работает в isim (xilinx 14.2), но не работает на sspartan6 - PullRequest
0 голосов
/ 07 декабря 2018

Я написал простой код счетчика в verilog (xilix 14.2).Код работает правильно в isim, но я не могу сбросить его на spartan6.Когда я пытаюсь сделать дамп кода, на спартанце 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

1 Ответ

0 голосов
/ 14 декабря 2018

Эй, ты не положил начало .. конец в блоке 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
...