l
根據「UP」來做 +1/-1, 附有致能的 mode-10 上下數計數器
附有致能的上下數計數器
pEN='0' , D=「正反器的輸出」所以沒有變化
pEN='1' 且「UP」='1' , D=「+1 電路」輸出會遞增
pEN='1' 且「UP」='0' , D=「-1 電路」輸出會遞減
//RESET --> KEY[0]
//Enable ==>SW[17]
//UP/DN ==>SW[0]
//UP/DN ==>SW[0]
//Clock ==>KEY[1]
//Output LED[3:0]
module up_dn_MOD10(SW,KEY,LEDR,CLOCK_50);
input [17:0]SW;
input [3:0]KEY;
input CLOCK_50;
output [17:0]LEDR;
EN_UDCNT10 ( .RESET_B(KEY[0]),
.CLK(KEY[1]),
.EN(SW[17]),
.UP(SW[0]),
.Q(LEDR[3:0]) );
endmodule
/* EN_UDCNT10 */
module EN_UDCNT10 ( RESET_B, CLK, EN, UP, Q );
input RESET_B, CLK, EN, UP;
output [3:0] Q;
reg [3:0] Q;
always @( posedge CLK or negedge RESET_B )
if ( !RESET_B )
Q <= 0;
else if ( EN )
if ( UP ) // COUNT UP
if ( Q == 9 )
Q <= 0;
else
Q <= Q + 1;
else // COUNT DOWN
if ( Q == 0 )
Q <= 9;
else
Q <= Q - 1;
endmodule
沒有留言:
張貼留言