勇敢的芯伴你玩轉Altera FPGA連載38::Verilog代碼風(fēng)格之雙向管腳的控制代碼

發(fā)布時(shí)間:2018-1-8 21:03    發(fā)布者:rousong1989
勇敢的芯伴你玩轉Altera FPGA連載38::Verilog代碼風(fēng)格之雙向管腳的控制代碼
特權同學(xué),版權所有
配套例程和更多資料下載鏈接:
http://pan.baidu.com/s/1i5LMUUD
對于單向的管腳,輸入信號或者輸出信號,他們的控制比較簡(jiǎn)單,不需要太復雜的控制,輸入信號可以直接用在各類(lèi)等式的右邊用于作為賦值的一個(gè)因子;而輸出信號則通常在等式的左邊被賦值。那么,既可以作為輸入信號又可以作為輸出信號的雙向信號又是如何進(jìn)行控制的呢?如果直接的和單向控制一樣即做輸入又做輸出,勢必會(huì )使信號的賦值發(fā)生紊亂。列舉一個(gè)簡(jiǎn)單的沖突,就是當輸入0而輸出1時(shí)到底這個(gè)信號是什么值?而我們如何控制才能夠避免這類(lèi)我們不期望的賦值情況發(fā)生?我們可以先看看表5.1所列出的I/O驅動(dòng)真值表。
表5.1 I/O驅動(dòng)真值表
  
驅動(dòng)源
  
0
1
x
Z
0
0
X
X
0
1
X
1
X
1
X
X
X
X
X
Z
0
1
X
Z
         在這個(gè)表里,我們發(fā)現當高祖態(tài)Z和0或1值同時(shí)出現時(shí),總能保持0或1的原狀態(tài)不變。我們在設計雙向管腳的邏輯時(shí)正要利用這個(gè)特性,管腳在做輸入時(shí),讓輸出值取Z狀態(tài),那么讀取的輸入值就完全取決于實(shí)際的輸入管腳狀態(tài),而與輸出值無(wú)關(guān);管腳在做輸出時(shí),則只要保證與器件管腳連接的信號也是處于類(lèi)似的Z狀態(tài)便可以正常輸出我們的信號值。當然了,外部的狀態(tài)是用對應芯片或外設的時(shí)序來(lái)保證的,我們在FPGA器件內部不直接可控,但我們還是可以把握好FPGA內部的輸入、輸出狀態(tài),保證不出現沖突情況。
         費了不少口舌,我想其實(shí)只要一個(gè)圖加幾段代碼,大家可能就明白其中的精髓。如圖5.9所示,link信號的高低用于控制雙向信號的值是輸出信號yout還是高阻態(tài)Z,當link控制當前的輸出狀態(tài)為Z時(shí),則輸入信號yin的值由管腳信號ytri來(lái)決定。
圖5.9 雙向信號控制
         實(shí)現代碼如下:
// Verilog例程
module bidir(ytri,…);
inout ytri;
reg link;
wire yin;
…    // link的取值控制邏輯以及其他邏輯
assign ytri = link ?yout:1'bz;
assign yin = ytri;
…    // yin用于內部賦值
endmodule

本文地址:http://selenalain.com/thread-521742-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页