0
我不知道如何簡化這段代碼,所以它只實例化一次seg7。我是Verilog的新手,所以我沒有任何線索。當前的代碼運行良好,我只需要知道如何簡化它。如果你們都可以善意地看看代碼,告訴我我需要做什麼,我會很高興的讚賞。如何將我的代碼簡化爲一個模塊?
module Design (SW, HEX0,HEX1,HEX2,HEX3);
input [3:0]SW;
output [0:6]HEX0;
output [0:6]HEX1;
output [0:6]HEX2;
output [0:6]HEX3;
seg7hex3 disp1(SW[3:0],HEX3);
seg7hex2 disp2(SW[3:0],HEX2);
seg7hex1 disp3(SW[3:0],HEX1);
seg7hex0 disp4(SW[3:0],HEX0);
endmodule
module seg7hex3(bcd,leds);
input [3:0] bcd;
output reg[1:7] leds;
always @(bcd)
case(bcd) //abcdefg
0: leds = 7'b0000000; // b1111111 for active high (B)
1: leds = 7'b0110001; // b1001110 (C)
3: leds = 7'b0000000; // b1111111 (B)
4: leds = 7'b0100100; // b1011011 (S)
5: leds = 7'b0001111; // b1110000 (-)
6: leds = 7'b0100100; // b1011011 (S)
default: leds =7'bx;
endcase
endmodule
module seg7hex2(bcd,leds);
input [3:0] bcd;
output reg[1:7] leds;
always @(bcd)
case(bcd) //abcdefg
0: leds = 7'b0001000; // b1110111 for active high (A)
1: leds = 7'b1001000; // b0110111 (H)
3: leds = 7'b0110000; // b1001111 (E)
4: leds = 7'b0000001; // b1111110 (O)
5: leds = 7'b0111001; // b1000110 (|)
6: leds = 7'b0000001; // b1111110 (O)
default: leds =7'bx;
endcase
endmodule
module seg7hex1(bcd,leds);
input [3:0] bcd;
output reg[1:7] leds;
always @(bcd)
case(bcd) //abcdefg
0: leds = 7'b1110001; // b0001110 for active high (L)
1: leds = 7'b1111001; // b0000110 (I)
3: leds = 7'b0110000; // b1001111 (E)
4: leds = 7'b0111000; // b1000111 (F)
5: leds = 7'b1110001; // b0001110 (first edge half V)
6: leds = 7'b1000010; // b0111101 (d)
default: leds =7'bx;
endcase
endmodule
module seg7hex0(bcd,leds);
input [3:0] bcd;
output reg[1:7] leds;
always @(bcd)
case(bcd) //abcdefg
0: leds = 7'b1110001; // b0001110 for active high (L)
1: leds = 7'b0011000; // b1100111 (P)
3: leds = 7'b0001000; // b1110111 (R)
4: leds = 7'b0001000; // b1110111(A)
5: leds = 7'b1000111; // b0111000 (back edge half V)
6: leds = 7'b0001000; // b1110111 (A)
default: leds =7'bx;
endcase
endmodule
我也會建議更改硬編碼輸出,參數,使更容易閱讀和將來改變。例如'參數B = 7'b0000000;''參數C = 7'b1001110;'然後你可以寫'0:leds1 = B;''1:leds1 = C;'。將來如果您的顯示器發生變化,您可以在一個地方更改參數。 – nguthrie