用VerilogHDL語言設計8位三態緩衝器

2021-03-19 18:23:02 字數 1536 閱讀 8745

1樓:匿名使用者

//用if語句描述的三態門

module tris8

(input [7:0] in,input en,output reg [7:0] out);

always @*

begin

if (en) out<=in;

else out<=1'bz;

endendmodule

2樓:

module three_t(in, en, out);

input [7:0] in;

input en;

output [7:0] out;

assign out = (en == 1) ? in : 8'bz;

endmodule

3樓:

你是南大計科男嗎? 明天做實驗 囧

xilinx中用verilog寫的三態門問題

4樓:匿名使用者

用的是xinlinx fpga的板子吧,絕大多數 xilinx的內部邏輯,(也就是不是真正i/o埠的所有邏輯)都是不支援tristate的,你如果瞭解fpga單元的原理就知道為什麼了,所以編譯綜合的程式沒辦法,只能把你的tristate 用邏輯1替換掉了。

你想實現tristate,就只能在i/o埠上做,沒其他選擇。

5樓:匿名使用者

三態門只有輸出埠才能用!

問一下verilog中三態門的實現問題。

6樓:匿名使用者

一般對於雙向的資料匯流排來說,在系統中會有多個裝置來驅動它的現象。

如果一個裝置不用總路線時,不把它驅動為高阻態,在另一個裝置要使用資料線時,就會出現多驅動的現象,在電路上會出現半高的電平,從而不知道這資料到底是1還是0了。

所以你註釋掉的那一句其實是非常有必要的。

所以這一句af_data <= qout; 是不能這樣寫的。

還是得用這種,匯流排使能加中間變數的方法。

assign af_data = (!data_dir)?qout:8'bzzzzzzzz;

7樓:匿名使用者

inout [7:0] af_data;

改為 inout reg [7:0] af_data; 就可以了

已測試過,望及時採納

verilog高手請教個問題!下面這個程式描述的是個三態門。執行有錯。望高手指點。謝謝!!

8樓:匿名使用者

檢測了,除少個分號,沒錯啊。。。module tr (cont,d,dp);

input cont;

input d;

output dp;

assign dp=cont ?d:1'bz ;

endmodule

9樓:匿名使用者

「output dp」 的後面丟了一個分號 !

請大神幫忙解釋,VerilogHDL語言

用普通語音的方式解釋一下程式執行的順序和規則 首先定義了一個字串指標陣列,最後一個指向的字串是 end 主函式呼叫displaynames顯示這個陣列指向的所有字串 不包括最後的那個end displaynames函式 判斷當前提供的字串指標指向的字串是否逗end地,如果是,直接返回,什麼也不做 否...

VHDL和Verilog HDL兩種語言的具體不同

這個問題不是兩三句就能解釋清楚的。verilog在工業界通用些,vhdl在大學較多。個人覺得vhdl比較嚴謹,veriloghdl格式要求鬆一些。hdl特別是verilog hdl得到在第一線工作的設計工程師的特別青睞,不僅因為hdl與c語言很相似,學習和掌握它並不困難,更重要的是它在複雜的soc的...

組合邏輯電路設計(使用Verilog HDL設計) 分別採用行為描述和結構描述設計一位全加器

行為描述 moudle a,b,ci,sum,c input a,b,ci output sum,c assign a b ci endmodle 結構描述 moudle a,b,ci,sum,c0 input a,b,ci output sum,co wire x,y,z xor 10 u1 x,...