首先明確有哪些輸入和輸出:
enable 使能 en0 en1 en2
input 輸入 i0 i1 i2
output 輸出 o0 ~ o7
然後把資料型別用verilog實現:
//使能端為三個 只有當使能為1 0 0的時候晶元才正常解碼
input wire[2:0] en;
//輸入端為三個二進位制位,對應2^3 = 8,即3-8解碼器
input wire[2:0] i;
//輸出為八個二進位制位
output wire[7:0] o;
再分析業務邏輯:什麼是業務邏輯?哎呀就是**的流程啦,說的高階點?
要想有正常的解碼結果,首先en == 100b
然後解碼過程實際上就是個左移的過程數學表示式為 o = 1 << i
如果en滿足條件就輸出2結果否則輸出 0
沒了吧根據業務邏輯分析編寫**:
//直接接線,然後輸出,方便快捷
assign o = (en==3'b100) ? ~(8'b0000_0001 << i) : 8'b0000_0000;
將以上**組合在一起:
module x74138(en, i, o);
input wire[2:0] en;
input wire[2:0] i;
output wire[7:0] o;
assign o = (en==3'b100) ? ~(8'b0000_0001 << i) : 8'b0000_0000;
endmodule
噠噠~大功告成!嗐!**博主就不?起勁了,直接給上**結果吧,怎麼配置**,其他博主的文章已經寫的很完美了,就不再贅述了。
en使能的區域
沒啦~o(* ̄▽ ̄*)ブ
verilog實現串列埠
實現串列埠的時候一些簡單的介紹和遇到問題和思考。備忘 實現時可以把這兩部分分開。也就是兩個 fifo 配套收和發的 v檔案,可以實現乙個串列埠。一般人實現串列埠的都是這麼想的吧。下面是檔案的層級結構 2 當然是coding 了。寫串列埠的 主要貼一下收和發的狀態機 用一段來實現的 1 這是收的部分 ...
verilog簡單實現串列埠
uart 2017.10.7 傳送接收到的資料 波特率9600 乙個停止位 無奇偶校驗 de2板子 rx gpio k25 0 left tx tx gpio k26 1 right rx gnd 右邊第6 或者倒數第6 復位不成功 復位按鍵有問題 靠右按即可復位 特別注意 如果乙個條件中同時給乙個...
卷積編碼verilog實現
完成 2,1,7 編碼方式 多項式為 133,171 也可以完成 2,1,5 編碼方式多項式 23,35 的verilog實現 對應 中的注釋的位置。相應的解碼器也寫已寫完,後續。相關的卷積編碼的基礎知識請參看 timescale 1ns 1ps company engineer create da...