Sim/circuit1
從波形不難看出ab是相與的關系,
module top_module ( input a, input b, output q );// assign q = a&b; // Fix me endmodule
Sim/circuit2

根據波形圖可以畫出卡諾圖并且之前有寫過這個卡諾圖的邏輯運算式,不難看出相鄰邏輯輸出會取反,所以這個是一個四變數的異或,0000輸出為1,所以還要再取反,
module top_module ( input a, input b, input c, input d, output q );// assign q = ~(a^b^c^d); // Fix me endmodule
Sim/circuit3
繼續畫卡諾圖

module top_module ( input a, input b, input c, input d, output q );// assign q = (b&d)||(a&d)||(b&c)||(a&c); // Fix me endmodule
Sim/circuit4
還是畫卡諾圖,把四個0的位置確定好就行,

module top_module ( input a, input b, input c, input d, output q );// assign q = b|c; // Fix me endmodule
Sim/circuit5
顯然這是一個資料選擇器,c的0123分別選擇bead,c為別的值的時候輸出值為f,
module top_module ( input [3:0] a, input [3:0] b, input [3:0] c, input [3:0] d, input [3:0] e, output [3:0] q ); always@(*) begin q=4'hf; case(c) 0:q=b; 1:q=e; 2:q=a; 3:q=d; endcase end endmodule
Sim/circuit6
暴力強解,
module top_module ( input [2:0] a, output [15:0] q ); always@(*) begin case(a) 0:q=16'h1232; 1:q=16'haee0; 2:q=16'h27d4; 3:q=16'h5a0e; 4:q=16'h2066; 5:q=16'h64ce; 6:q=16'hc526; 7:q=16'h2f19; default:q=0; endcase end endmodule
Sim/circuit7
由圖中不難看出來q是對a的取反,采取時序邏輯恰好延后了一個周期,
module top_module ( input clk, input a, output reg q ); always@(posedge clk) begin q <= ~a; end endmodule
Sim/circuit8
從波形圖不難看出p在clock高電平時改變,低電平鎖存,所以是一個鎖存器,q在時鐘下降沿發生變化,是一個下降沿觸發的觸發器,
module top_module ( input clock, input a, output reg p, output reg q ); always@(*) begin if(clock) p = a; end always@(negedge clock) begin q <= a; end endmodule
Sim/circuit9
該電路在a為低電平時計數,高電平置為4,并且計數最多到6就清零,
module top_module ( input clk, input a, output [3:0] q ); always@(posedge clk) begin if(~a) q <= (q<6)?(q+1):0; else q <= 4; end endmodule
Sim/circuit10
仔細看波形圖,狀態在ab同為1跳轉為1,ab同為0跳轉為0,
分別觀察兩個狀態的邏輯,發現恰好一個是異或一個異或非,
module top_module ( input clk, input a, input b, output q, output reg state ); parameter A=0,B=1; reg next_state; always@(posedge clk) begin state <= next_state; end always@(*) begin if(a&b) next_state <= B; else if(~(a|b)) next_state <= A; end assign q=state?~(a^b):(a^b); endmodule
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/529859.html
標籤:Verilog
上一篇:python中的字典和集合
