【正文】
0000) Y=3’b111。 else if (A==8’b00001000) Y=3’b011。 reg [2:0] Y。 ?assign賦值語句中,被賦值的變量 /信號一定為 wire類型。 assign {sum,cout}= {a^b^c, (aamp。 assign c= aamp。 2’b11: {add1,add2} = {G , H}。 ………. always (sel or A or B or C or D or E or F or G or H) begin {add1,add2} = 16’b0。 endcase end ……….. + + + + A B C D E F G H Sel Sum 0 1 2 3 組合邏輯電路描述 …….. reg [7:0] A, B, C, D, E, F, G, H。 case (Sel) 2’b00: Sum = A +B。 end endmodule + + + A1 B1 C1 D1 Y1 + + + A2 B2 C2 D2 Y2 組合邏輯電路描述 …….. reg [7:0] A, B, C, D, E, F, G, H。 output [10:0] Y1, Y2。 endcase default: Y1 = ~(Aamp。 2’b01: Y1 = A amp。 …… always ( Sel1or Sel2 or A or B or C or D ) begin …… case(Sel1) 2’b00: Y1 = A + 1。B) 。 2’b01: Y 2= B。 endcase …… end …… 分支不滿 出現(xiàn) Latch 分支雖滿,但屬于值保持, 出現(xiàn) Latch 組合邏輯電路描述 reg [1:0] Sel。 2’b01: Y = B。 endcase …… end …… reg [1:0] Sel。 …… always ( Sel or A or B or C or D ) begin …… case(Sel) 2’b00: Y = A。 M = Y2 | Y1。 reg Y1,Y2,M。 組合邏輯電路描述 描述要點(diǎn): ?避免引入不必要的 Latch器件; ?注意 HDL描述所對應(yīng)的硬件結(jié)構(gòu): ? 盡量降低邏輯級數(shù); ? 盡量減少所需的邏輯器件的數(shù)目; ? 注意硬件的共享 ?注意描述結(jié)構(gòu)中信號敏感表的完整性和冗余性; 組合邏輯電路描述 避免出現(xiàn)不必要的 Latch ?Latch的作用是什么? ? Latch本身是一種時(shí)序控制的存儲器件; ? Latch主要用來保持或存儲一段時(shí)間不改變的數(shù)據(jù); ? Latch 一般受電平控制; ? Latch 還可能會受到使能信號控制。 ?什么情況下會引入 Latch? ?條件或分支語句中,對信號賦值說明不完全、且信號在條件或分支語句前沒有初始賦值。 …… always ( En1 or En2 or A1 or A2 or B1 or B2) begin if (En1) Y1 = A1。 end end …… En1= 0時(shí), Y1取值情形 沒有說明,產(chǎn)生 Lacth En2= 0時(shí), Y M的取值情形 沒有說明,產(chǎn)生 Lacth以保持 M、 Y2 的取值 組合邏輯電路描述 reg [1:0] Sel。 2’b01: Y = B。 reg [7:0] A, B,C,D。 2’b10: Y = C。 reg [7:0] A, B,C,D。 2’b10: Y1 = C。 endcase …… end …… Y Y2在有些分支中 沒有明確的賦值,導(dǎo)致出現(xiàn) 不必要的 Latch 組合邏輯電路描述 reg [1:0] Sel1, Sel2。 2’b01: Y 1= A + B。 B。B) 。 reg [10:0] Y1, Y2。 reg [8:0] Sum。 2’b01: Sum = C + D。 reg [8:0] Sum。 case (Sel) 2’b00: {add1,add2} = {A , B}。 endcase Sum