新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 十年FPGA開發(fā)經(jīng)驗工程師教你的絕密設(shè)計技巧

        十年FPGA開發(fā)經(jīng)驗工程師教你的絕密設(shè)計技巧

        作者: 時間:2018-08-07 來源:網(wǎng)絡(luò) 收藏

        本文引用地址:http://www.104case.com/article/201808/385638.htm

        2)用數(shù)學(xué)思維來簡化設(shè)計邏輯

        學(xué)習(xí)不僅邏輯思維很重要,好的數(shù)學(xué)思維也能讓你的設(shè)計化繁為簡,所以啊,那些看見高數(shù)就頭疼的童鞋需要重視一下這門課哦。舉個簡單的例子,比如有兩個32bit的數(shù)據(jù)X[31:0]與Y[31:0]相乘。當(dāng)然,無論Altera還是Xilinx都有現(xiàn)成的乘法器IP核可以調(diào)用,這也是最簡單的方法,但是兩個32bit的乘法器將耗費大量的資源。那么有沒有節(jié)省資源,又不太復(fù)雜的方式來實現(xiàn)呢?我們可以稍做修改:

        將X[31:0]拆成兩部分X1[15:0]和X2[15:0],令X1[15:0]=X[31:16],X2[15:0]=X[15:0],則X1 左移16位后與X2相加可以得到X;同樣將Y[31:0]拆成兩部分Y1[15:0]和Y2[15:0],令 Y1[15:0]=Y[31:16],Y2[15:0]=Y[15:0],則Y1左移16位后與Y2相加可以得到Y(jié);則X與Y的相乘可以轉(zhuǎn)化為X1和X2 分別與Y1和Y2相乘,這樣一個32bit*32bit的乘法運算轉(zhuǎn)換成了四個16bit*16bit的乘法運算和三個32bit的加法運算。轉(zhuǎn)換后的占用資源將會減少很多,有興趣的童鞋,不妨綜合一下看看,看看兩者差多少。

        3)時鐘與觸發(fā)器的關(guān)系

        “時鐘是時序電路的控制者” 這句話太經(jīng)典了,可以說是設(shè)計的圣言。的設(shè)計主要是以時序電路為主,因為組合邏輯電路再怎么復(fù)雜也變不出太多花樣,理解起來也不沒太多困難。但是時序電路就不同了,它的所有動作都是在時鐘一拍一拍的節(jié)奏下轉(zhuǎn)變觸發(fā),可以說時鐘就是整個電路的控制者,控制不好,電路功能就會混亂。

        打個比方,時鐘就相當(dāng)于人體的心臟,它每一次的跳動就是觸發(fā)一個 CLK,向身體的各個器官供血,維持著機體的正常運作,每一個器官體統(tǒng)正常工作少不了組織細胞的構(gòu)成,那么觸發(fā)器就可以比作基本單元組織細胞。時序邏輯電路的時鐘是控制時序邏輯電路狀態(tài)轉(zhuǎn)換的“發(fā)動機”,沒有它時序邏輯電路就不能正常工作,因為時序邏輯電路主要是利用觸發(fā)器存儲電路的狀態(tài),而觸發(fā)器狀態(tài)變換需要時鐘的上升或下降沿!由此可見時鐘在時序電路中的核心作用!

        最后簡單說一下體會吧,歸結(jié)起來就多實踐、多思考、多問。實踐出真知,看 100遍別人的方案不如自己去實踐一下。實踐的動力一方面來自興趣,一方面來自壓力,我個人覺得后者更重要。有需求會容易形成壓力,也就是說最好能在實際的項目開發(fā)中鍛煉,而不是為了學(xué)習(xí)而學(xué)習(xí)。在實踐的過程中要多思考,多想想問題出現(xiàn)的原因,問題解決后要多問幾個為什么,這也是經(jīng)驗積累的過程,如果有寫項目日志的習(xí)慣更好,把問題及原因、解決的辦法都寫進去。最后還要多問,遇到問題思索后還得不到解決就要問了,畢竟個人的力量是有限的,問同學(xué)同事、問搜索引擎、問網(wǎng)友都可以,一篇文章、朋友們的點撥都可能幫助自己快速解決問題。


        上一頁 1 2 3 下一頁

        關(guān)鍵詞: CPLD 電子工程師 FPGA

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 鸡东县| 敦化市| 秦皇岛市| 芒康县| 安多县| 东源县| 藁城市| 湛江市| 锡林郭勒盟| 深水埗区| 永兴县| 吉木乃县| 日照市| 英山县| 五指山市| 蒙自县| 本溪| 福海县| 神池县| 鞍山市| 巍山| 剑川县| 鹤峰县| 彰武县| 房产| 昭平县| 寿光市| 苏州市| 阿拉尔市| 南阳市| 尚义县| 文山县| 涞源县| 东兴市| 永修县| 铜梁县| 定边县| 桃园市| 崇文区| 漠河县| 全南县|