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

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

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

基于FPGA數(shù)字門電路的實現(xiàn)

璟琰乀 ? 來源:硬禾學(xué)堂 ? 作者:硬禾學(xué)堂 ? 2020-12-18 11:46 ? 次閱讀

學(xué)習電子工程的過程中離不開大量的實驗和動手練習,就如同開車一樣,學(xué)習理論數(shù)載,如果從來沒有打幾把方向盤,踩幾腳油門然后再被教練緊急剎車幾次,仍然不會開車。正所謂,看別人做一百次,不如自己練一次。

1

電路原理

數(shù)字電路中,門電路是最基本的構(gòu)成單位,可以說,任何復(fù)雜的數(shù)字電路系統(tǒng)都可以通過我們耳熟能詳?shù)呐c門,非門,或門,與非門,異或門等等組合實現(xiàn)。

對于各種門電路的邏輯特征,想必大家都掌握得爐火純青,腦海里可以毫無壓力地隨時浮現(xiàn)著各種0和1的組合。

然而,搭建一個門電路實驗卻并不容易!我們以下面的與非門電路為例。

BJ77Fb.png

圖1 與非門電路

表1 與非門真值表

傳說中,如果想做一個與非門的數(shù)字電路實驗,可以通過以下兩種方法:

熱愛模電的朋友們可以通過MOS管+面包板+電源+跳線以及若干小時的反復(fù)調(diào)試。

土豪朋友們對此不屑一顧,直接拍幾千塊買一臺數(shù)字電路實驗儀。

當然,既沒有那么熱愛模電,也沒有那么多軟妹紙的朋友門仍然有更合適的辦法,那就是通過邏輯芯片。比如大家熟悉的7400系列的邏輯芯片,只需要接上電源,再配上開關(guān),LED等器件,就可以通過實驗方式對與非門的邏輯和電氣特性進行直觀地學(xué)習,比如采用7400 Quad2的與非門邏輯芯片。

uqMniu.png

圖2 與非門邏輯芯片

因為我們要觀察實驗現(xiàn)象,因此需要配上開關(guān)和LED燈,使得實驗可以可視化。當然,作為習慣了課上學(xué)習1+1=2,考試見到

的后浪,肯定不能滿足于這個簡單的實驗?,F(xiàn)在,在上一個練習的基礎(chǔ)上,我們來嘗試構(gòu)建以下門電路組合。

圖3 組合門電路

嵌入式專欄

2

門電路實現(xiàn)

以下是某位同學(xué)獨特的實現(xiàn)方式:

圖4

雖然我們還通過軟件仿真的方式構(gòu)建上述電路并觀察波形,然而和電路上進行實打?qū)嵉牟僮飨啾冉K究是有質(zhì)的差別。畢竟靠著模擬飛車駕齡20年資歷上路還是要被警察叔叔帶走的。

不難看出,畫門電路容易,對門電路進行實驗很難,對各式各樣奇葩組合的門電路進行實驗更是難上加難。然而這一切在FPGA面前都只是談笑風生。

FPGA,英文全稱Field Programmable Gate Array,是一種可以通過某百科或搜索引擎查找到并且看了之后不明覺厲的東西。在此,我們主要介紹一下FPGA的部分特點,以及如何使其與數(shù)字電路實驗進行結(jié)合。

首先問大家一個問題:我們在計算3x7=21或者5x8=40的時候,有誰是通過最原始的乘法原理推導(dǎo)并計算出來的,如果有,請在底部留言并獲得所有人的膜拜。相信大部分人都可以在半秒內(nèi)給出準確答案,為什么?因為我們都背過九九乘法表,只要是在這個范圍內(nèi)的任意乘法我們的大腦都可以瞬間對應(yīng)出計算結(jié)果。相信大家對當年的112=121,122=144,132=169…等等還歷歷在目。

之所以我們可以在一定范圍內(nèi)進行準確和快速的計算,是因為我們的大腦里儲存了一個擁有大量數(shù)據(jù)的查找表,在一定范圍內(nèi)的輸入數(shù)據(jù)我們都可以迅速在表中找到對應(yīng)答案。其實,F(xiàn)PGA的運算處理方式就類似于我們的大腦。它擁有一個可以儲存大量數(shù)據(jù)的查找表,只要我們通過程序定義出輸入與輸出之間的邏輯關(guān)系,F(xiàn)PGA就可以按照該邏輯關(guān)系自行對其內(nèi)部結(jié)構(gòu)進行重新定義,直白地說,就是我們可以隨時給FPGA進行洗腦,而后者可以永遠不計回報,心甘情愿地被洗腦。

接下來我們就快速展示一下如何通過FPGA展示圖3所示的門電路。既然要對FPGA進行洗腦,肯定需要語言。在這里我們采用簡單通俗的Verilog語言,通過描述門電路的方式,以16行代碼輕松在FPGA上搭建上述門電路。

module custblock ( input wire A, //定義輸入A input wire B, //定義輸入B input wire C, //定義輸入C input wire D, //定義輸入D output wire Y1, //定義輸出Y1 output wire Y2 //定義輸出Y2 ); wire s1,s2,s3; //定義中間變量 nand (s1,A,B); //(輸出,輸入,輸入) or (s2,C,D); // 調(diào)用基本門電路 xnor (Y1,s1,C); and (s3,C,s2); xor (Y2,C,s3); endmodule

將上述代碼導(dǎo)入FPGA之后,就等于在FPGA上構(gòu)建出了一個模塊,輸入端分別是A,B,C,D,輸出端分別是Y2,Y1,且內(nèi)部結(jié)構(gòu)和圖3中所示的功能完全一樣。

圖5

不過,對于實驗來說,僅僅在FPGA上搭建出該門電路模塊還是不夠的,我們還需要允許實驗者對該電路進行調(diào)試并觀察現(xiàn)象,因此還需要有相應(yīng)的可操作/觀察元件與FPGA配合使用。接下來就是我們備受歡迎的小腳丫FPGA登場的時候了。

圖6 小腳丫FPGA核心板

從示意圖中可以看出,小腳丫FPGA帶有多個板載外設(shè),如開關(guān),LED和數(shù)碼管等,可以對絕大部分數(shù)字電路進行生動的實驗操作。小腳丫配有USB下載器,可以通過一根USB線實現(xiàn)供電和程序下載。板上的36個多功能I/O接口可以進行項目擴展,且封裝采用DIP40尺寸,因此可以與面包板完美結(jié)合。

以下是通過我們小腳丫FPGA對該電路進行的實驗。我們采用板載的4個撥碼開關(guān)和2個LED(低電平亮)分別作為模塊的4路輸入和2路輸出,并且通過調(diào)節(jié)輸入來觀察輸出結(jié)果。上下兩圖分別所對應(yīng)的輸入分別為:0001和0101,我們也觀察到了在兩種情況下的LED狀態(tài)。

責任編輯:haq

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

    關(guān)注

    1620

    文章

    21510

    瀏覽量

    598921
  • 電路
    +關(guān)注

    關(guān)注

    171

    文章

    5747

    瀏覽量

    171204
  • 核心板
    +關(guān)注

    關(guān)注

    5

    文章

    927

    瀏覽量

    29519
收藏 人收藏

    評論

    相關(guān)推薦

    采用門電路實現(xiàn)485芯片的功能的

    采用門電路實現(xiàn)485芯片的功能的
    發(fā)表于 09-06 22:37

    TTL門電路的基本概念、工作原理及特性參數(shù)

    TTL(晶體管-晶體管邏輯)門電路數(shù)字電子學(xué)中的一種基本組件,廣泛應(yīng)用于計算機、通信和其他數(shù)字系統(tǒng)中。TTL門電路的工作原理基于晶體管的開關(guān)特性,通過控制輸入信號的邏輯關(guān)系來
    的頭像 發(fā)表于 08-11 11:03 ?734次閱讀

    輸入電流幾乎為零的門電路特點

    門電路的基本概念 門電路數(shù)字邏輯電路中的基本組成部分,它們通過邏輯運算實現(xiàn)對輸入信號的處理。常見的門電
    的頭像 發(fā)表于 07-30 15:15 ?254次閱讀

    普通門電路的輸出端能否連在一起

    討論門電路輸出端能否連在一起之前,我們首先需要了解門電路的基本概念。門電路數(shù)字電路中的基本邏輯單元,用于實現(xiàn)基本的邏輯運算,如與(AND)
    的頭像 發(fā)表于 07-30 15:13 ?295次閱讀

    哪種門電路的輸出端可以并聯(lián)使用

    門電路數(shù)字邏輯電路的基本組成部分,它們用于實現(xiàn)基本的邏輯運算,如與(AND)、或(OR)、非(NOT)、異或(XOR)等。在數(shù)字電路設(shè)計中
    的頭像 發(fā)表于 07-30 15:11 ?300次閱讀

    TTL門電路和CMOS有什么特點及區(qū)別

    基于雙極型晶體管的數(shù)字邏輯電路,其工作原理是利用晶體管的開關(guān)特性來實現(xiàn)邏輯運算。在TTL門電路中,輸入信號通過晶體管的基極-發(fā)射極結(jié)進行放大,然后通過集電極-發(fā)射極結(jié)進行開關(guān)控制,最終
    的頭像 發(fā)表于 07-30 14:54 ?944次閱讀

    怎么判斷cmos門電路的輸出狀態(tài)

    CMOS(互補金屬氧化物半導(dǎo)體)是一種廣泛使用的集成電路技術(shù),它利用了兩種類型的晶體管:N型和P型。CMOS門電路數(shù)字邏輯電路的基本構(gòu)建塊,包括CMOS與門、或門、非門、異或門等。要
    的頭像 發(fā)表于 07-30 14:52 ?343次閱讀

    cmos門電路多余輸入端的處理方法

    一、引言 CMOS(互補金屬氧化物半導(dǎo)體)門電路是現(xiàn)代數(shù)字電子系統(tǒng)中廣泛使用的關(guān)鍵組件。它們以其低功耗、高噪聲容限和易于集成等優(yōu)點而著稱。然而,在設(shè)計CMOS門電路時,經(jīng)常會遇到多余的輸入端
    的頭像 發(fā)表于 07-30 14:50 ?479次閱讀

    如何判斷TTL門電路的輸出狀態(tài)?

    TTL(晶體管-晶體管邏輯)門電路數(shù)字電子學(xué)中常用的構(gòu)建模塊,它們基于晶體管實現(xiàn)基本的邏輯功能。
    的頭像 發(fā)表于 05-28 16:10 ?980次閱讀

    cmos或非門電路與ttl或非門電路的邏輯功能

    本文就CMOS或非門電路和TTL或非門電路的邏輯功能進行了詳細講解。首先介紹了CMOS和TTL兩種電路的基本原理和實現(xiàn)方式。然后分別從輸入特性、輸出特性和功耗三個方面,深入比較了CMO
    的頭像 發(fā)表于 02-22 11:19 ?1933次閱讀

    數(shù)字電路中的邏輯門電路分類

    數(shù)字電路中的邏輯門電路分類 數(shù)字電路是計算機系統(tǒng)中的重要組成部分,它們由邏輯門電路構(gòu)成。邏輯門電路是一種基本的
    的頭像 發(fā)表于 02-04 09:14 ?2941次閱讀

    一文帶你詳解門電路

    【科普】詳解門電路
    的頭像 發(fā)表于 12-15 10:41 ?1315次閱讀
    一文帶你詳解<b class='flag-5'>門電路</b>

    深入講解TTL門電路

    什么是TTL門電路?TTL是一種集成電路,通過使用雙極性晶體管組合來做到具有驅(qū)動能力的邏輯輸出。TTL最重要的特性是門的輸入在未連接時將為邏輯高電平。在硬件電路中,會用到邏輯門這樣的數(shù)字
    的頭像 發(fā)表于 12-15 08:21 ?2727次閱讀
    深入講解TTL<b class='flag-5'>門電路</b>

    門電路電子課件

    電子發(fā)燒友網(wǎng)站提供《門電路電子課件.ppt》資料免費下載
    發(fā)表于 11-21 14:27 ?6次下載
    <b class='flag-5'>門電路</b>電子課件

    邏輯門電路基本概念介紹

    的邏輯關(guān)系,所以門電路又稱邏輯門電路,是實現(xiàn)一定邏輯關(guān)系的開關(guān)電路。 3、基本門電路 實現(xiàn)基本邏
    的頭像 發(fā)表于 10-10 10:15 ?2432次閱讀
    邏輯<b class='flag-5'>門電路</b>基本概念介紹