S
smileysam
Guest
Iam tentar um contador espasmódico que um dos problemas do exercício em um livr prob é que a declaração desativar "main_counter_loop desativar," nunca é evocado, conduzindo a transbordar.
O código é o seguinte:/ / Contador jerky
main_jerky_counter módulo (out_count, relógio);
output [7:0] out_count;
relógio inout;
jerky_counter i1 (out_count, relógio);
clock_gen i2 (relógio);
endmodule
jerky_counter módulo (out_count, relógio);
output [7:0] out_count;
clock de entrada;
count integer;
shift_count inteiro;
reg [7:0] out_count;
inicial
começo
count = 1;
shift_count = 1;
out_count = 8'b0;
fim
always @ (posedge clock)
begin: main_counter_loop
if (count% 2 == 1)
começo
out_count <= 8'b1;
count = count 1;
fim
diferente
começo
if (out_count> = 8'b10000000)
começo
main_counter_loop desativar;
out_count <= 8'b11111111;
shift_count <= 1;
count <= 1;
fim
diferente
começo
out_count <= (8'b1 <<shift_count);
shift_count = shift_count 1;
count = count 1;
fim
fim
fim
endmodule
clock_gen módulo (relógio);
relógio de saída;
relógio de registro;
inicial
clock = 0;
sempre
# 50 clock = clock ~;
endmodule
O código é o seguinte:/ / Contador jerky
main_jerky_counter módulo (out_count, relógio);
output [7:0] out_count;
relógio inout;
jerky_counter i1 (out_count, relógio);
clock_gen i2 (relógio);
endmodule
jerky_counter módulo (out_count, relógio);
output [7:0] out_count;
clock de entrada;
count integer;
shift_count inteiro;
reg [7:0] out_count;
inicial
começo
count = 1;
shift_count = 1;
out_count = 8'b0;
fim
always @ (posedge clock)
begin: main_counter_loop
if (count% 2 == 1)
começo
out_count <= 8'b1;
count = count 1;
fim
diferente
começo
if (out_count> = 8'b10000000)
começo
main_counter_loop desativar;
out_count <= 8'b11111111;
shift_count <= 1;
count <= 1;
fim
diferente
começo
out_count <= (8'b1 <<shift_count);
shift_count = shift_count 1;
count = count 1;
fim
fim
fim
endmodule
clock_gen módulo (relógio);
relógio de saída;
relógio de registro;
inicial
clock = 0;
sempre
# 50 clock = clock ~;
endmodule