2021年3月22日 星期一

DE2-115 開發 以解碼器 Decodere 為例(Verilog Data flow modeling )

 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






沒有留言:

張貼留言

WOKWI LED + MQTT Node-Red SQLite

WOKWI LED + MQTT Node-Red SQLite const char *mqtt_broker = "broker.mqtt-dashboard.com" ; const char *topic1 = "alex9ufo/e...