寫做時間:2020-10-31異步
目錄:
1.典型電路的設計與最基礎知識
-1.1 全加器
-1.2 數據通路
-1.3 計數器
-1.4 算術操做
-1.5 邏輯操做
-1.6 移位操做
-1.7 時序操做
-1.8 ALU
-1.9 有限狀態機
-1.10 三態總線
2.經常使用電路設計(須要徹底搞懂)
-2.1 CRC校驗碼產生器
-2.2 隨機數產生
-2.3 雙口RAM
-2.4 同步FIFO
-2.5 異步FIFO
學習
學習思路:
先學好基本的模塊,理解消化後,是基礎。再學習一些經常使用電路,而後慢慢的就能夠進行項目設計。
spa
正文:
1.典型電路的設計與最基礎知識
-1.1 全加器
設計
module FULLADDR(Cout, Sum, Ain, Bin, Cin); input Ain, Bin, Cin; output Sum, Cout; wire Sum; wire Cout; assign Sum = Ain ^ Bin ^ Cin; assign Cout = (Ain & Bin) | (Bin & Cin) | (Ain & Cin); endmodule
-1.2 數據通路
-1.2.1四選一的多路選擇器
code
//Example of a mux4-1. module MUX( C,D,E,F,S,Mux_out); input C,D,E,F ; //input input [1:0] S ; //select control output Mux_out ; //result reg Mux_out ; //mux always@(C or D or E or F or S) begin case (S) 2'b00 : Mux_out = C ; 2'b01 : Mux_out = D ; 2'b10 : Mux_out = E ; default : Mux_out = F ; endcase end
-1.2.2譯碼器blog
//Example of a 3-8 decoder module DECODE(Ain,En,Yout); input En ; //enable input [2:0] Ain ; //input code output [7:0] Yout ; reg [7:0] Yout ; always@(En or Ain) begin if(!En) Yout = 8'b0 ; else case (Ain) 3'b000 : Yout = 8'b0000_0001 ; 3'b001 : Yout = 8'b0000_0010 ; 3'b010 : Yout = 8'b0000_0100 ; 3'b011 : Yout = 8'b0000_1000 ; 3'b100 : Yout = 8'b0001_0000 ; 3'b101 : Yout = 8'b0010_0000 ; 3'b110 : Yout = 8'b0100_0000 ; 3'b111 : Yout = 8'b1000_0000 ; default : Yout = 8'b0000_0000 ; endcase end endmodule
-1.3 計數器圖片
在這裏插入代碼片
-1.4 算術操做
-1.5 邏輯操做
-1.6 移位操做
-1.7 時序操做
-1.8 ALU
-1.9 有限狀態機
-1.10 三態總線
input
1.2數據通路同步
THE END~class