... <看更多>
「verilog elseif」的推薦目錄:
- 關於verilog elseif 在 [問題] Verilog寫不寫else差異- 看板Electronics - 批踢踢實業坊 的評價
- 關於verilog elseif 在 Verilog if else structure - Stack Overflow 的評價
- 關於verilog elseif 在 Verilog - gists · GitHub 的評價
- 關於verilog elseif 在 Verilog if-else-if syntax - Electrical Engineering Stack Exchange 的評價
- 關於verilog elseif 在 Conditional Statements in Verilog - always block, If-else ... 的評價
verilog elseif 在 Verilog - gists · GitHub 的推薦與評價
else if (ENGINE == 0) ENGINE = ENGINE_STATE;. end. function F_Judge_ES;. input[7:0] SPEED;. input[3:0] GEAR;. input ACCELE,CLUCH,START;. input[2:0] GCHANGE;. ... <看更多>
verilog elseif 在 Verilog if-else-if syntax - Electrical Engineering Stack Exchange 的推薦與評價
You need to add a b base specifier to your 3-bit constants. In your code, 010 is the decimal value ten, not two. ... <看更多>
verilog elseif 在 [問題] Verilog寫不寫else差異- 看板Electronics - 批踢踢實業坊 的推薦與評價
想請教一下有涉獵Verilog的朋友們,用always block來描述
Sequential circuit時,若只想在某種情形下存入新的input值並且輸出
你們會用哪一種寫法?
原則上寫法1,不加else:
always@(posedge clk)
case(out_sel)
4'd1:if(V==4'd2)begin det0<=din; end
4'd2:if(V==4'd3)begin det0<=din; end
4'd3:if(V==4'd4)begin det0<=din; end
4'd4:if(V==4'd5)begin det0<=din; end
4'd5:if(V==4'd6)begin det0<=din; end
4'd6:if(V==4'd7)begin det0<=din; end
4'd7:if(V==4'd8)begin det0<=din; end
endcase
寫法2,加了else,但為了保留記憶,將output拉回指向自己:
always@(posedge clk)
case(out_sel)
4'd1:if(V==4'd2)begin det0<=din; end else det0<=det0;
4'd2:if(V==4'd3)begin det0<=din; end else det0<=det0;
4'd3:if(V==4'd4)begin det0<=din; end else det0<=det0;
4'd4:if(V==4'd5)begin det0<=din; end else det0<=det0;
4'd5:if(V==4'd6)begin det0<=din; end else det0<=det0;
4'd6:if(V==4'd7)begin det0<=din; end else det0<=det0;
4'd7:if(V==4'd8)begin det0<=din; end else det0<=det0;
endcase
合成結果:
用design compiler合出來的D-FF不太一樣,
寫法1是合出帶有CK,E,Q,QN的另一種DFF,比較不像是平常呼叫D-FF module
的那種標準元件
寫法2是合出帶有CK,D,Q及一個多工器的標準記憶D-FF
奇怪的是寫法2,也就是有加else的電路gate count卻比沒加的多了一些,
我知道有些人說不管怎樣都一定要寫,比較保險,也比較嚴謹,但是這樣gate count
就增加了,划得來嗎? 模擬起來結果也都是一樣的
但奇怪的是,平常寫單獨寫D-FF module時,為了能夠有記憶的特性
也不會在enable後面再加else阿?
而一般推崇也都是這樣的寫法:
module dff8(Q, D, enable, reset, clk); //8bit D-filp-flop
output [7:0] Q;
input [7:0] D;
input clk, reset,enable;
reg [7:0] Q;
always @(posedge clk or negedge reset)
begin
if (reset==0) Q<=0;
else if (enable)Q<=D;
end
endmodule
...讓我有點搞糊塗了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 120.101.8.201
※ 編輯: asd1436 來自: 120.101.8.201 (12/13 22:11)
... <看更多>