DE2-115 開發 以解碼器 Decodere 為例(Verilog)
7442為二-十進位解碼器,具有4個輸入端和10個輸出端。輸入信號採用8421BCD碼,二進位數0000-1001與十進位數0-9對應。當輸入超過這個範圍是無效,10個輸出端均為高電平。7442電路沒有使能端,因此隻要輸入在規定範圍內,就會有一個輸出端為低電平。
//7442 one-to-ten decoder Data flow modeling
module gate_7442_decoder(SW,LEDR );
input [17:0] SW;
output [17:0] LEDR;
decoder(SW[17:0],LEDR[17:0]);
endmodule
//======================
//-- decoder.v
//-- Component has an input (Din) and an output (Dout)
module decoder( Din, Dout );
input [17:0]Din;
output [17:0]Dout;
//-- Both the input and the output are "wires"
wire [17:0]Din;
wire [17:0]Dout;
// in[2:0] may be a wire, reg, or input
wire [7:0] out1;
// Individual wires
// Data flow modeling
assign Dout[0] = ~ (~Din[3] & ~Din[2] & ~Din[1] & ~Din[0]); //0000
assign Dout[1] = ~ (~Din[3] & ~Din[2] & ~Din[1] & Din[0]); //0001
assign Dout[2] = ~ (~Din[3] & ~Din[2] & Din[1] & ~Din[0]); //0010
assign Dout[3] = ~ (~Din[3] & ~Din[2] & Din[1] & Din[0]); //0011
assign Dout[4] = ~ (~Din[3] & Din[2] & ~Din[1] & ~Din[0]); //0100
assign Dout[5] = ~ (~Din[3] & Din[2] & ~Din[1] & Din[0]); //0101
assign Dout[6] = ~ (~Din[3] & Din[2] & Din[1] & ~Din[0]); //0110
assign Dout[7] = ~ (~Din[3] & Din[2] & Din[1] & Din[0]); //0111
assign Dout[8] = ~ ( Din[3] & ~Din[2] & ~Din[1] & ~Din[0]); //1000
assign Dout[9] = ~ ( Din[3] & ~Din[2] & ~Din[1] & Din[0]); //1001
endmodule
沒有留言:
張貼留言