实战篇
三人表决器
外设
- LED
module LED
(
LED0,LED1,LED2,LED3,LED4,LED5,LED6,LED7
);
output LED0,LED1,LED2,LED3,LED4,LED5,LED6,LED7;
assign LED0=1'b1;
assign LED1=1'b0;
assign LED2=1'b0;
assign LED3=1'b0;
assign LED4=1'b1;
assign LED5=1'b0;
assign LED6=1'b0;
assign LED7=1'b0;
endmodule
- 按键
module Key
(
KEY0,KEY1,KEY2,KEY3,KEY4,KEY5,KEY6,KEY7,
LED0,LED1,LED2,LED3,LED4,LED5,LED6,LED7
);
input KEY0,KEY1,KEY2,KEY3,KEY4,KEY5,KEY6,KEY7;
output LED0,LED1,LED2,LED3,LED4,LED5,LED6,LED7;
assign LED0=~KEY0;
assign LED1=~KEY1;
assign LED2=~KEY2;
assign LED3=~KEY3;
assign LED4=~KEY4;
assign LED5=~KEY5;
assign LED6=~KEY6;
assign LED7=~KEY7;
//input [7:0]KEY
//output [7:0]LED;
// LED=KEY;
endmodule
- 数码管
module seg
(
SEG_DATAa,SEG_DATAb,SEG_DATAc,SEG_DATAd,SEG_DATAe,SEG_DATAf,SEG_DATAg,SEG_DATAp,
SEG_EN1,SEG_EN2,SEG_EN3,SEG_EN4,SEG_EN5,SEG_EN6
);
output SEG_DATAa,SEG_DATAb,SEG_DATAc,SEG_DATAd,SEG_DATAe,SEG_DATAf,SEG_DATAg,SEG_DATAp;
output SEG_EN1,SEG_EN2,SEG_EN3,SEG_EN4,SEG_EN5,SEG_EN6;
parameter SEG_NUM0=8'hbf,
SEG_NUM1=8'h86,
SEG_NUM2=8'hdb,
SEG_NUM3=8'hcf,
SEG_NUM4=8'he6,
SEG_NUM5=8'hed,
SEG_NUM6=8'hfd,
SEG_NUM7=8'h87,
SEG_NUM8=8'hff,
SEG_NUM9=8'hef,
SEG_NUMA=8'hf7,
SEG_NUMB=8'hfc,
SEG_NUMC=8'hb9,
SEG_NUMD=8'hde,
SEG_NUME=8'hf9,
SEG_NUMF=8'hf1;
assign {SEG_DATAp,SEG_DATAg,SEG_DATAf,SEG_DATAe,SEG_DATAd,SEG_DATAc,SEG_DATAb,SEG_DATAa}=SEG_NUM0;
assign {SEG_EN1,SEG_EN2,SEG_EN3,SEG_EN4,SEG_EN5,SEG_EN6}=6'b000000;
endmodule
综合
module Vote
(
//输入
KEY1,KEY2,KEY3,
LED1,LED2,LED3,
SEG_DATA,SEG_EN
);
input KEY1,KEY2,KEY3;
output LED1,LED2,LED3;
output [5:0] SEG_EN;
output reg [6:0] SEG_DATA;
parameter SEG_NUM0=7'h3f,
SEG_NUM1=7'h06,
SEG_NUM2=7'h5b,
SEG_NUM3=7'h4f;
always@(*)
begin
case ({KEY3,KEY2,KEY1})
3'b000 :SEG_DATA=SEG_NUM0;
3'b001 :SEG_DATA=SEG_NUM1;
3'b010 :SEG_DATA=SEG_NUM1;
3'b011 :SEG_DATA=SEG_NUM2;
3'b100 :SEG_DATA=SEG_NUM1;
3'b101 :SEG_DATA=SEG_NUM2;
3'b110 :SEG_DATA=SEG_NUM2;
3'b111 :SEG_DATA=SEG_NUM3;
default:SEG_DATA=SEG_NUM0;
endcase
end
assign LED1=!KEY1;
assign LED2=!KEY2;
assign LED3=!KEY3;
assign SEG_EN=6'b011111;
endmodule