0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Verilog中的三態(tài)門與雙向信號(hào)詳解

sanyue7758 ? 來源: 芯片驗(yàn)證日記 ? 2024-01-11 10:10 ? 次閱讀

1.前言

數(shù)字電路中,邏輯輸出有兩個(gè)正常態(tài):低電平狀態(tài)(對(duì)應(yīng)邏輯0)和高電平狀態(tài)(對(duì)應(yīng)邏輯1)。此外,電路還有不屬于0和1狀態(tài)的高阻態(tài),高阻態(tài)常用字母 Z 表示。

高阻態(tài)可做開路理解??梢园阉醋鬏敵觯ㄝ斎耄?a target="_blank">電阻非常大,它的極限狀態(tài)可以認(rèn)為懸空(開路)。也就是說理論上高阻態(tài)不是懸空,它是對(duì)地或?qū)?a target="_blank">電源電阻極大的狀態(tài)。而實(shí)際應(yīng)用上與引腳的懸空幾乎是一樣的。或者可以理解為輸出與電路是斷開的。高阻抗?fàn)顟B(tài)將器件與電路的其余部分電路隔離。高阻態(tài)時(shí)引腳對(duì)地電阻無窮,此時(shí)讀引腳電平就可以讀到真實(shí)的電平值。高阻態(tài)的重要作用就是I/O口在用作輸入(input)時(shí)讀入外部電平。

一般門與其它電路的連接,無非是兩種狀態(tài),0或者1,在比較復(fù)雜的系統(tǒng)中,為了能在一條傳輸線上傳送不同的信號(hào),研制了相應(yīng)的邏輯器件稱為三態(tài)門。三態(tài)門是一種控制開關(guān)。

三態(tài)門主要是用于總線的連接,因?yàn)榭偩€只允許同時(shí)只有一個(gè)器件使用。通常在數(shù)據(jù)總線上接有多個(gè)器件,每個(gè)器件通過OE/CE之類的信號(hào)選通。如果器件沒有選通的話它就處于高阻態(tài),相當(dāng)于沒有接在總線上,不影響其它器件的工作。三態(tài)邏輯門允許許多設(shè)備連接到相同的數(shù)據(jù)線上,例如數(shù)據(jù)和地址總線。然而,任何時(shí)候只有一個(gè)設(shè)備“連接”,所有其他設(shè)備都處于高阻抗?fàn)顟B(tài),因此電氣斷開。

雙向信號(hào)本質(zhì)上是由一個(gè)三態(tài)門組成,具體細(xì)節(jié)參見后面的描述。

2. 三態(tài)門

2.1示意圖、真值表

Verilog中有四個(gè)元件模型來表示三態(tài)門電路,分別是bufif1,bufif0,notif1,notif0。三態(tài)門的示意圖、真值表分別如下圖所示:

wKgZomWfTnGARksXAAF8IjlLlyk078.jpg

wKgZomWfTnKAXBWaAAX2CniIRKE180.png

wKgZomWfTnGAJdwTAAT7_qFNgq8342.png

2.2 三態(tài)門結(jié)構(gòu)

三態(tài)門電路的輸出結(jié)構(gòu)和普通門電路的輸出結(jié)構(gòu)有很大的不同,因?yàn)樗陔娐分性黾恿艘粋€(gè)輸出控制端。

2.2.1 單向三態(tài)門

單向三態(tài)門的結(jié)構(gòu)示意圖如下:

wKgaomWfTnGABEBtAAArpehC60o101.png

由上圖看出,在單向三態(tài)門中,當(dāng)E為高電平時(shí),B與A相連,數(shù)據(jù)流向是A-->B;而當(dāng)E為低電平時(shí),B的輸出為高阻態(tài),相當(dāng)于B側(cè)電路與A側(cè)電路之間的連線斷開,此時(shí)可以從外部向B驅(qū)動(dòng)信號(hào),實(shí)現(xiàn)相反方向的數(shù)據(jù)流向(B-->A)。

2.2.1 雙向三態(tài)門

當(dāng)信號(hào)線存在雙向IO時(shí),可以有兩個(gè)三態(tài)門來控制,一個(gè)控制輸出,一個(gè)控制輸入,雙向三態(tài)門的結(jié)構(gòu)示意圖如下:

wKgZomWfTnKAAyjMAABLtt8ciGM843.png

當(dāng)E1=1,E2=0時(shí),雙向三態(tài)門的電路傳輸方向是 A -> B;
當(dāng)E1=0,E2=1時(shí),雙向三態(tài)門的電路傳輸方向是 B -> A;

2.3 三態(tài)門建模

三態(tài)門的RTL建模方式如下所示

//Tristate Buffer
moduletristate_buffer(input_x,enable,output_x);
inputinput_x;
inputenable;
output output_x;


assign output_x = enable? input_x : 'bz;


endmodule

testbench如下:

module tb();   
reg r_in_x;   
reg w_enable;  
wire w_output_x;


initial begin $display("----------------------
Tri-State Buffer
----------------------
"); 
$monitor("input_x = %b, enable = %b, output_x = %b", r_in_x, w_enable, w_output_x); 
// Generation of stimulus
r_in_x = 0; w_enable= 0;       
# 10  r_in_x = 0;# 10  r_in_x = 1; 
# 10  w_enable = 1; 
# 10  r_in_x = 1; 
# 10  r_in_x = 0; 
end


// Tri-state buffer instantiation
tristate_buffer u_tristate_buffer( 
  .input_x (r_in_x), 
  .enable  (w_enable),  
  .output_x (w_output_x));
endmodule

仿真結(jié)果

wKgZomWfTnGAIr1GAABA5dkEWik021.png

3. 雙向信號(hào)

芯片驗(yàn)證的過程中,有時(shí)候會(huì)遇到雙向信號(hào)(既能作為輸出,也能作為輸入的信號(hào)叫雙向信號(hào))。比如,IIC總線中的SDA信號(hào)就是一個(gè)雙向信號(hào),QSPI Flash的四線操作的時(shí)候四根信號(hào)線均為雙向信號(hào)。在Verilog中用關(guān)鍵字inout定義雙向信號(hào)。

如下圖所示,雙向信號(hào)的本質(zhì)是由一個(gè)三態(tài)門組成的,三態(tài)門可以輸出高電平、低電平和高阻態(tài)三種狀態(tài),其結(jié)構(gòu)大致如下圖所示:

wKgaomWfTnGAaWayAAAhRxY2WYE886.png

描述這個(gè)邏輯的Verilog代碼如下:

module inout_top
(
input       I_data_in        ,
inout       IO_data          ,
output     O_data_out     ,
input       Control
);


assign IO_data = Control ? I_data_in : 1‘bz ;
assign O_data_out = IO_data ;


endmodule    


當(dāng)Control為1時(shí),IO_data為輸出,輸出I_data_in的值

當(dāng)Control為0時(shí),IO_data為輸入,把輸入的信號(hào)賦值給O_data_out。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1351

    瀏覽量

    110100
  • 邏輯器件
    +關(guān)注

    關(guān)注

    0

    文章

    88

    瀏覽量

    20099
  • 三態(tài)門
    +關(guān)注

    關(guān)注

    1

    文章

    34

    瀏覽量

    18826
  • 數(shù)字電路
    +關(guān)注

    關(guān)注

    193

    文章

    1605

    瀏覽量

    80622

原文標(biāo)題:Verilog中的三態(tài)門與雙向信號(hào)

文章出處:【微信號(hào):處芯積律,微信公眾號(hào):處芯積律】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    什么是三態(tài)和OC

    三態(tài)和OC一、OC實(shí)際使用,有時(shí)需要兩個(gè)或兩個(gè)以上與非門的輸出端連接在同一條導(dǎo)線上,將這些與非門上的數(shù)據(jù)(狀態(tài))用同一條導(dǎo)線輸送出去
    發(fā)表于 05-26 13:01

    VERILOG關(guān)于三態(tài)

    inout Key_inout;wire Key_input;//輸入reg Key_output;//輸出reg Key_Ctr;//三態(tài)控制assign Key_inout=Key_Ctr
    發(fā)表于 09-23 15:34

    集電極開路 漏極開路 推挽 上拉電阻 弱上拉 三態(tài) 準(zhǔn)雙向

    集電極開路 漏極開路 推挽 上拉電阻 弱上拉 三態(tài) 準(zhǔn)雙向
    發(fā)表于 06-02 16:22

    高阻態(tài)三態(tài)的電路原理分析

    處于斷開狀態(tài))。三態(tài)是一種擴(kuò)展邏輯功能的輸出級(jí),也是一種控制開關(guān)。主要是用于總線的連接,因?yàn)榭偩€只允許同時(shí)只有一個(gè)使用者。通常在數(shù)據(jù)總線上接有多個(gè)器件,每個(gè)器件通過OE/CE之類的信號(hào)選通。如器件
    發(fā)表于 01-08 11:03

    【夢(mèng)翼師兄今日分享】 三態(tài)程序設(shè)計(jì)講解

    等,要求信號(hào)三態(tài)類型,也就是我們所說的輸入輸出(inout)類型。那么,本節(jié)夢(mèng)翼師兄將和大家一起來探討三態(tài)的用法。項(xiàng)目需求設(shè)計(jì)一個(gè)三態(tài)
    發(fā)表于 12-12 16:11

    三態(tài)的工作原理是什么?

    三態(tài)的工作原理是什么?
    發(fā)表于 05-20 06:55

    什么是三態(tài)? 三態(tài)邏輯與非門電路以及三態(tài)門電路

    什么是三態(tài)? 三態(tài),是指邏輯的輸出除有高、低電平兩種狀態(tài)外,還有第種狀態(tài)——高阻狀態(tài)的
    發(fā)表于 05-26 12:48 ?4.7w次閱讀
    什么是<b class='flag-5'>三態(tài)</b><b class='flag-5'>門</b>? <b class='flag-5'>三態(tài)</b>邏輯與非門電路以及<b class='flag-5'>三態(tài)</b>門電路

    三態(tài)的組成及工作原理

    三態(tài)的組成及工作原理
    發(fā)表于 02-28 19:13 ?2.5w次閱讀
    <b class='flag-5'>三態(tài)</b><b class='flag-5'>門</b>的組成及工作原理

    三態(tài)邏輯功能的Multisim仿真方案

    介紹了用Multisim仿真軟件分析三態(tài)工作過程的方法,目的是探索三態(tài)工作波形的仿真實(shí)驗(yàn)技術(shù),即用Multisim仿真軟件的字組產(chǎn)生器
    發(fā)表于 05-06 15:59 ?0次下載
    <b class='flag-5'>三態(tài)</b><b class='flag-5'>門</b>邏輯功能的Multisim仿真方案

    三態(tài)有哪三態(tài)_三態(tài)有什么特點(diǎn)

    本文開始介紹了三態(tài)的定義與三態(tài)的應(yīng)用,其次對(duì)三態(tài)三態(tài)
    發(fā)表于 03-01 14:47 ?12.9w次閱讀
    <b class='flag-5'>三態(tài)</b><b class='flag-5'>門</b>有哪<b class='flag-5'>三態(tài)</b>_<b class='flag-5'>三態(tài)</b><b class='flag-5'>門</b>有什么特點(diǎn)

    傳輸三態(tài)什么區(qū)別

    本文主要介紹了傳輸三態(tài)什么區(qū)別,三態(tài)就是指輸出有種狀態(tài)(0,1,高阻)的
    的頭像 發(fā)表于 04-08 15:33 ?5.5w次閱讀
    傳輸<b class='flag-5'>門</b>和<b class='flag-5'>三態(tài)</b><b class='flag-5'>門</b>什么區(qū)別

    三態(tài)怎么理解

    三態(tài)亦稱“三態(tài)輸出門”、“三態(tài)輸出電路”。是一種重要的總線接口電路。具有高電平、低電平和高阻抗
    的頭像 發(fā)表于 03-10 09:29 ?1.8w次閱讀

    FPGA之三態(tài)

    三態(tài)電路可提供種不同的輸出值:邏輯“0”,邏輯“1”和高阻態(tài)。高阻態(tài)主要用來將邏輯同系統(tǒng)的其他部分加以隔離。例如
    的頭像 發(fā)表于 11-29 07:09 ?4534次閱讀

    三態(tài)的用法及模塊功能介紹

    三態(tài)電路可提供種不同的輸出值:邏輯“0”,邏輯“1”和高阻態(tài)。高阻態(tài)主要用來將邏輯同系統(tǒng)的其他部分加以隔離。例如
    的頭像 發(fā)表于 11-21 07:05 ?8768次閱讀

    三態(tài)原理HDL語言DSP和ARM總線的仿真及Modelsim使用教程資料

    本文檔的主要內(nèi)容詳細(xì)介紹的是三態(tài)原理HDL語言DSP和ARM總線的仿真及Modelsim使用教程資料主要內(nèi)容包括了:1 ModelSimSE的使用流程,2 一個(gè)Verilog計(jì)數(shù)器仿真詳細(xì)流程附
    發(fā)表于 07-09 16:49 ?10次下載
    <b class='flag-5'>三態(tài)</b><b class='flag-5'>門</b>原理HDL語言DSP和ARM總線的仿真及Modelsim使用教程資料