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

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

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

詳解FPGA的基本電路結(jié)構(gòu)

潘文明 ? 來源:明德?lián)P吳老師 ? 作者:明德?lián)P吳老師 ? 2022-03-24 11:22 ? 次閱讀

第二章 FPGA知識(shí)大串講02_知識(shí)串聯(lián)

作者:潘文明

本文為明德?lián)P原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明出處!

在上一篇文章中,我們概括地講述了FPGA的一些學(xué)習(xí)誤區(qū)。本文我們將FPGA的關(guān)鍵知識(shí)串聯(lián)起來,系統(tǒng)地介紹各個(gè)知識(shí)點(diǎn)所處的層次和位置,為后面幾仿篇文章的詳細(xì)講解做好鋪墊。

第1節(jié) FPGA的基本電路結(jié)構(gòu)

詳解FPGA的基本電路結(jié)構(gòu)

首先,我們來講解一下FPGA的基本電路結(jié)構(gòu)。請(qǐng)看上圖中左邊紅色方框,該方框內(nèi)包含了組合邏輯電路以及一個(gè)D觸發(fā)器。組合邏輯里可能是加法器、減法器、選擇器,甚至是什么都沒有,就是連線;組合邏輯的輸出將連接到D觸發(fā)器的輸入端;D觸發(fā)器在時(shí)鐘的驅(qū)動(dòng)下,將組合邏輯的運(yùn)算結(jié)構(gòu),輸出到D觸發(fā)器的輸出端。

這就是一個(gè)FPGA的基本電路結(jié)構(gòu),而這個(gè)電路結(jié)構(gòu)則與VERILOG中的一個(gè)ALWAYS對(duì)應(yīng),如下面的代碼

詳解FPGA的基本電路結(jié)構(gòu)

上面代碼在綜合器的作用下,其綜合的FPGA電路結(jié)構(gòu),也是組合邏輯+D觸發(fā)器的形式。其中組合邏輯由比較器(cnt==0、cnt==1、cnt==2就是比較器)、選擇器(從1、2、3或者保持不變中選擇)等組成;D觸發(fā)器的時(shí)鐘就是代碼中的clk,輸入則是組合邏輯的結(jié)果,輸出則是信號(hào)cnt。

有讀者可能會(huì)對(duì)基本電路結(jié)構(gòu)有疑問,難道所有代碼都這樣結(jié)構(gòu)嗎?例如下面代碼中的add_cnt0和end_cnt0信號(hào),它是由assign設(shè)計(jì)的,它們就沒有D觸發(fā)器。

詳解FPGA的基本電路結(jié)構(gòu)

單純只看add_cnt0和end_cnt0的代碼,貌似是沒有D觸發(fā)器,但仔細(xì)看第5行和第6行,這個(gè)兩個(gè)信號(hào)是參與了判斷(事實(shí)就是選擇器),決定了D觸發(fā)器的輸出cnt0。即從add_cnt0到cnt0之間,就是組合邏輯+D觸發(fā)器的結(jié)構(gòu)。

FPGA代碼是由一個(gè)又一個(gè)ALWAYS代碼組成的,這說明FPGA的絕大部分電路,就是由一個(gè)又一個(gè)“組合邏輯+D觸發(fā)器”的電路組合起來的,如下圖

詳解FPGA的基本電路結(jié)構(gòu)

上面這種結(jié)構(gòu)是我們?cè)O(shè)計(jì)的基本單位。這種結(jié)構(gòu)還有一種隱含的意思:組合邏輯決定電路的運(yùn)算及功能,D觸發(fā)器就像一個(gè)節(jié)點(diǎn),將運(yùn)算結(jié)果保存下來,為下一級(jí)運(yùn)算作準(zhǔn)備。FPGA代碼設(shè)計(jì)過程,就像是設(shè)計(jì)一個(gè)功能,保存一下,設(shè)計(jì)下一個(gè)功能,保存一下。文字難以描述,請(qǐng)讀者認(rèn)真體會(huì)體會(huì)。

還有注意的是,上面推薦的是“組合邏輯+D觸發(fā)器”結(jié)構(gòu)思維,不要使用“D觸發(fā)器+組合邏輯”思維,這種思維是不正確的。

詳解FPGA的基本電路結(jié)構(gòu)

再看上圖,為什么說FPGA代碼里,各個(gè)ALWAYS是并行的呢?從上圖就很容易理解了。圖中可以看到,三個(gè)D觸發(fā)器都連接時(shí)鐘CLK。當(dāng)時(shí)鐘CLK的上升沿的時(shí)候,這三個(gè)D觸發(fā)器將同時(shí)受到此信息,同時(shí)將D觸發(fā)器的輸入值給到輸出。這些電路都是同時(shí)工作的,不存在誰先誰后的。沒有所謂說這個(gè)電路在工作,另一個(gè)不在工作的情況。

這個(gè)就是FPGA 的基本電路結(jié)構(gòu),讀者務(wù)必做到非常清楚這個(gè)電路結(jié)構(gòu),這是我們后面描述的一個(gè)重要基礎(chǔ)。

第2節(jié) FPGA的知識(shí)點(diǎn)

我們?cè)贔PGA基礎(chǔ)電路結(jié)構(gòu)圖的基礎(chǔ),將FPGA的所有知識(shí)點(diǎn)串聯(lián)起來,然后通過4篇文章,逐一進(jìn)行詳細(xì)的講解。

詳解FPGA的基本電路結(jié)構(gòu)

1. 先講述組合邏輯部分。組合邏輯是由加法器、減法器、比較器、選擇器等電路組成的,所以一開始我們要理解組合邏輯的電路有哪些類型;然后據(jù)此掌握這些類型的VERILOG代碼的寫法;接下來討論這些組合邏輯的時(shí)序,引出組合邏輯才有的競(jìng)爭(zhēng)和冒險(xiǎn)現(xiàn)象,最后提出競(jìng)爭(zhēng)和冒險(xiǎn)的解決方法。

詳解FPGA的基本電路結(jié)構(gòu)

2. 完成組合邏輯的講述后,我們將討論D觸發(fā)器。首先會(huì)講解D觸發(fā)器的結(jié)構(gòu),進(jìn)而會(huì)講述D觸發(fā)器的時(shí)序,討論D觸發(fā)器時(shí)序與組合邏輯的異同。從D觸發(fā)器時(shí)序中,有一個(gè)非常重要的概念:建立時(shí)間和保持時(shí)間。如果建立時(shí)間和保持時(shí)間不滿足,就會(huì)有一個(gè)叫亞穩(wěn)態(tài)的情況。亞穩(wěn)態(tài)有什么危害,亞穩(wěn)態(tài)出現(xiàn)的場(chǎng)合有哪些。在明確了出現(xiàn)的場(chǎng)合后,就要想辦法解決亞穩(wěn)態(tài)問題,提出了亞穩(wěn)態(tài)的解決方法。其解決方法分兩種:一種是單一信號(hào),也就是一比特信號(hào)的解決方法;還有一種是多比特信號(hào)的解決方法。

詳解FPGA的基本電路結(jié)構(gòu)

3. 講完了D觸發(fā)器之后,我們將把組合邏輯和D觸發(fā)器聯(lián)合起來。前面已經(jīng)講魔神,組合邏輯+D觸發(fā)器是一個(gè)正確的的電路結(jié)構(gòu)。有正確,那么就不正確,根據(jù)收集讀者的反饋情況,我們列出了一些經(jīng)常會(huì)犯的、不合理的結(jié)構(gòu)。之后將討論這個(gè)基本結(jié)構(gòu)的時(shí)序;接下來是講述如何用VERILOG來實(shí)現(xiàn)。實(shí)現(xiàn)的話,就有行為描述以及狀態(tài)機(jī)的實(shí)現(xiàn)這幾種方法了。

詳解FPGA的基本電路結(jié)構(gòu)

4. 最后一部分,我們將單獨(dú)對(duì)時(shí)鐘進(jìn)行講解。時(shí)鐘是FPGA的一個(gè)基礎(chǔ),是一個(gè)很重要的概念,是FPGA設(shè)計(jì)的重點(diǎn)和難點(diǎn)。首先我們將講述時(shí)鐘的概念;然后是時(shí)鐘抖動(dòng)SKEW和時(shí)鐘頻率。經(jīng)常有被問到:我這個(gè)電腦CPU能跑1G,他那個(gè)電腦CPU能跑2G,這就是使用頻率。那這個(gè)頻率取決于什么因素,為什么有些跑得快,有些跑得慢?這個(gè)問題將引出關(guān)鍵路徑的概念。為了提高時(shí)鐘頻率,我們可以怎么做?流水線的設(shè)計(jì)!!!

以上就是我們FPGA 的所有知識(shí)點(diǎn),將其展示到一張圖,方便讀者使用。

詳解FPGA的基本電路結(jié)構(gòu)

審核編輯:湯梓紅

聲明:本文內(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)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1625

    文章

    21637

    瀏覽量

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

    關(guān)注

    172

    文章

    5828

    瀏覽量

    171804
  • 結(jié)構(gòu)
    +關(guān)注

    關(guān)注

    1

    文章

    117

    瀏覽量

    21556
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    詳解FPGA的基本結(jié)構(gòu)

    ZYNQ PL 部分等價(jià)于 Xilinx 7 系列 FPGA,因此我們將首先介紹 FPGA 的架構(gòu)。簡(jiǎn)化的 FPGA 基本結(jié)構(gòu)由 6 部分組成,分別為可編程輸入/輸出單元、基本可編程邏
    的頭像 發(fā)表于 10-25 16:50 ?548次閱讀
    <b class='flag-5'>詳解</b><b class='flag-5'>FPGA</b>的基本<b class='flag-5'>結(jié)構(gòu)</b>

    FPGA的時(shí)鐘電路結(jié)構(gòu)原理

    FPGA 中包含一些全局時(shí)鐘資源。以AMD公司近年的主流FPGA為例,這些時(shí)鐘資源由CMT(時(shí)鐘管理器)產(chǎn)生,包括DCM、PLL和MMCM等。
    發(fā)表于 04-25 12:58 ?1672次閱讀
    <b class='flag-5'>FPGA</b>的時(shí)鐘<b class='flag-5'>電路</b><b class='flag-5'>結(jié)構(gòu)</b>原理

    深入理解 FPGA 的基礎(chǔ)結(jié)構(gòu)

    時(shí)間對(duì) FPGA 的內(nèi)部結(jié)構(gòu)產(chǎn)生了一定的興趣,所以找來了一本書看,這篇博客相當(dāng)于是對(duì)其中相關(guān)知識(shí)點(diǎn)的梳理與總結(jié), 前置知識(shí)是數(shù)字電路邏輯 。參考書目寫在了下面: FPGA 原理和
    發(fā)表于 04-03 17:39

    集成芯片原理圖詳解

    集成芯片的原理圖詳解涉及多個(gè)方面,包括芯片的結(jié)構(gòu)、功能模塊、信號(hào)傳輸以及內(nèi)部電路連接等。
    的頭像 發(fā)表于 03-19 16:36 ?1635次閱讀

    fpga開發(fā)是什么意思

    配置內(nèi)部的邏輯門和連接關(guān)系來實(shí)現(xiàn)特定的電路功能。因此,FPGA開發(fā)實(shí)質(zhì)上是一種將軟件算法或硬件電路轉(zhuǎn)化為可編程邏輯結(jié)構(gòu)的過程,以實(shí)現(xiàn)各種復(fù)雜的邏輯和數(shù)據(jù)處理任務(wù)。
    的頭像 發(fā)表于 03-15 14:28 ?1063次閱讀

    fpga芯片工作原理 fpga芯片有哪些型號(hào)

    部分。這些部分共同構(gòu)成了FPGA的基本結(jié)構(gòu),使其具有高度的靈活性和可配置性。 在FPGA中,小型查找表(LUT)是實(shí)現(xiàn)組合邏輯的關(guān)鍵組件。每個(gè)查找表連接到一個(gè)D觸發(fā)器的輸入端,觸發(fā)器進(jìn)而驅(qū)動(dòng)其他邏輯
    的頭像 發(fā)表于 03-14 17:17 ?1347次閱讀

    fpga入門基礎(chǔ)知識(shí)

    定制電路,FPGA既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。簡(jiǎn)而言之,FPGA就是一個(gè)可以通過編程來改變內(nèi)部
    的頭像 發(fā)表于 03-14 15:40 ?472次閱讀

    FPGA的數(shù)字時(shí)鐘電路解析

    FPGA 在通信領(lǐng)域的應(yīng)用可以說是無所不能,得益于 FPGA 內(nèi)部結(jié)構(gòu)的特點(diǎn),它可以很容易地實(shí)現(xiàn)分布式的算法結(jié)構(gòu),這一點(diǎn)對(duì)于實(shí)現(xiàn)無線通信中的高速數(shù)字信號(hào)處理十分有利。
    發(fā)表于 01-24 13:46 ?710次閱讀
    <b class='flag-5'>FPGA</b>的數(shù)字時(shí)鐘<b class='flag-5'>電路</b>解析

    什么是fpga和cpld cpld與fpga結(jié)構(gòu)上有何異同

    ,Programmable Logic Device)的一種。它們?cè)跀?shù)字電路設(shè)計(jì)中扮演重要的角色,具有高度的可定制性和靈活性。 首先,讓我們來了解FPGA和CPLD的基本概念和原理。FPGA是一種集成
    的頭像 發(fā)表于 01-22 18:05 ?2579次閱讀

    詳解FPGA六大應(yīng)用領(lǐng)域

    FPGA 所能應(yīng)用的領(lǐng)域大概可以分成六大類,下面聽我一一道來。 01 FPGA在通信系統(tǒng)的應(yīng)用簡(jiǎn)介 FPGA 在通信領(lǐng)域的應(yīng)用可以說是無所不能,得益于 FPGA 內(nèi)部
    發(fā)表于 01-17 17:03

    一文帶你詳解電路

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

    拖動(dòng)系統(tǒng)基本控制電路詳解

    拖動(dòng)系統(tǒng)基本控制電路詳解
    的頭像 發(fā)表于 12-13 09:19 ?548次閱讀
    拖動(dòng)系統(tǒng)基本控制<b class='flag-5'>電路</b><b class='flag-5'>詳解</b>

    一文詳解pcb電路板是怎么制作的

    一文詳解pcb電路板是怎么制作的
    的頭像 發(fā)表于 12-05 11:18 ?1380次閱讀

    詳解高密 PCB走線布線的垂直導(dǎo)電結(jié)構(gòu) (VeCS)

    詳解高密 PCB走線布線的垂直導(dǎo)電結(jié)構(gòu) (VeCS)
    的頭像 發(fā)表于 11-28 17:00 ?1519次閱讀
    <b class='flag-5'>詳解</b>高密 PCB走線布線的垂直導(dǎo)電<b class='flag-5'>結(jié)構(gòu)</b> (VeCS)

    LED電源驅(qū)動(dòng)電路詳解

    電子發(fā)燒友網(wǎng)站提供《LED電源驅(qū)動(dòng)電路詳解.doc》資料免費(fèi)下載
    發(fā)表于 11-15 14:25 ?18次下載
    LED電源驅(qū)動(dòng)<b class='flag-5'>電路</b>圖<b class='flag-5'>詳解</b>