国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

FPGA設計經驗談 —— 10年FPGA開發經驗的工程師肺腑之言

發布時間:2014-8-8 14:01    發布者:看門狗
關鍵詞: FPGA
作者:friends

  從大學時代第一次接觸FPGA至今已有10多年的時間。至今記得當初第一次在EDA實驗平臺上完成數字秒表,搶答器,密碼鎖等實驗時,那個興奮勁。當時由于沒有接觸到HDL硬件描述語言,設計都是在MAX+plus II原理圖環境下用74系列邏輯器件搭建起來的。后來讀研究生,工作陸陸續續也用過Quartus II,Foundation,ISE,Libero,并且學習了verilogHDL語言,學習的過程中也慢慢體會到verilog的妙用,原來一小段語言就能完成復雜的原理圖設計,而且語言的移植性可操作性比原理圖設計強很多。

  在學習一門技術之前我們往往從它的編程語言入手,比如學習單片機時,我們往往從匯編或者C語言入門。所以不少開始接觸FPGA的開發人員,往往是從VHDL或者Verilog開始入手學習的。但我個人認為,若能先結合《數字電路基礎》系統學習各種74系列邏輯電路,深刻理解邏輯功能,對于學習HDL語言大有裨益,往往會起到事半功倍的效果。

  當然,任何編程語言的學習都不是一朝一夕的事,經驗技巧的積累都是在點滴中完成,FPGA設計也無例外。下面就以我的切身體會,談談FPGA設計的經驗技巧。

  1)看代碼,建模型

  只有在腦海中建立了一個個邏輯模型,理解FPGA內部邏輯結構實現的基礎,才能明白為什么寫Verilog和寫C整體思路是不一樣的,才能理解順序執行語言和并行執行語言的設計方法上的差異。在看到一段簡單程序的時候應該想到是什么樣的功能電路。

  例如:



  上面這段代碼實現的功能就是一個帶使能端的2選1數據選擇器,如下圖所示。



  再例如:



上面這段always實現的是帶同步清零端的串并轉換移位寄存器,位寬為width,下圖為8位電路模型



  當你具備了一定的識代碼能力之后,你會發現原來Verilog不是那么的枯燥,只不過是一個個電路模型的拼搭而已。

  2)組合邏輯中的if...else...與case

  對于多輸入端的組合邏輯來說,如果不需要考慮優先級應該盡量采用case語句來描述,這樣綜合出來的電路并行度要大一些,如果采用if...else...結構,綜合出來的電路都是串行的,增大了信號時延路徑。降低寄存器間組合路徑的延遲是提高系統工作頻率的主要手段,因此在完成相同功能的前提下應該盡量使用并行結構邏輯。



  可以看出,并行模式比串行模式少了一級延時路徑,隨著輸入端的增多,串行邏輯將比并行邏輯產生更多的延時路徑。

  3)用數學思維來簡化設計邏輯

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

  將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;則X與Y的相乘可以轉化為X1和X2分別與Y1和Y2相乘,這樣一個32bit*32bit的乘法運算轉換成了四個16bit*16bit的乘法運算和三個32bit的加法運算。轉換后的占用資源將會減少很多,有興趣的童鞋,不妨綜合一下看看,看看兩者差多少。

  4)時鐘與觸發器的關系

  “時鐘是時序電路的控制者”這句話太經典了,可以說是FPGA設計的圣言。FPGA的設計主要是以時序電路為主,因為組合邏輯電路再怎么復雜也變不出太多花樣,理解起來也不沒太多困難。但是時序電路就不同了,它的所有動作都是在時鐘一拍一拍的節奏下轉變觸發,可以說時鐘就是整個電路的控制者,控制不好,電路功能就會混亂。打個比方,時鐘就相當于人體的心臟,它每一次的跳動就是觸發一個CLK,向身體的各個器官供血,維持著機體的正常運作,每一個器官體統正常工作少不了組織細胞的構成,那么觸發器就可以比作基本單元組織細胞。時序邏輯電路的時鐘是控制時序邏輯電路狀態轉換的“發動機”,沒有它時序邏輯電路就不能正常工作,因為時序邏輯電路主要是利用觸發器存儲電路的狀態,而觸發器狀態變換需要時鐘的上升或下降沿!由此可見時鐘在時序電路中的核心作用!

5)關于IP核和乒乓操作的那點事

  經驗告訴我,能使用開發工具自帶的IP核,就千萬別去自己開發。往往自己開發已有的IP核是吃力不討好。我曾經做過一個eMMC控制器燒寫外部eMMC芯片的案子。

  數據由上位機通過USB傳給MCU,然后通過數據總線發到FPGA,在FPGA內部形成燒寫eMMC芯片的時序,燒寫外部芯片。框圖如下:



  最初的算法是通過數據總線發一個字節,再向芯片打一個字節,一個頁的512字節的CRC16需要事先用軟件計算好,但是這種方式燒寫速度太慢。后來我想到一種方案,先把512個字節傳到FPGA內部存儲起來,并且在FPGA內部計算好16個字節的CRC,然后用高速系統時鐘一次性把整頁528個字節傳給芯片,這種方式燒寫速度能提高很多。一開始我想自己設計一個帶CRC計算的RAM或者FIFO來存儲528個字節的數據,可是無論怎么設計數據傳輸總是有問題,由于是一個人做,也沒人指導,只得放棄這種方案,改用其他。因為我用的Xilinx器件有現成的FIFO核可以調用,于是我就把CRC16的計算和存儲512字節數據分開設計,在最后輸出到芯片端再選通。因為燒寫eMMC一個頁,需要有一定的等待POLLING時間,所以我想到了用兩組FIFO,乒乓操作,A通道數據發送到芯片并且等待應答的時候,MCU端向B通道發送數據存儲,B通道數據發送到芯片并且等待應答的時候,MCU端再向A通道發送數據存儲,這樣最大化的加速了燒寫速度,當然最后的設計結果我也是相當滿意的。



  我想通過此例告訴大家的是,盡量用系統的IP核吧,省事又省心,因為這些都是前輩專家們設計出的經典。還有就是利用一些設計技巧,比如乒乓操作,流水線操作可以讓你的設計性能優化不少。

  最后簡單說一下體會吧,歸結起來就多實踐、多思考、多問。實踐出真知,看100遍別人的方案不如自己去實踐一下。實踐的動力一方面來自興趣,一方面來自壓力,我個人覺得后者更重要。有需求會容易形成壓力,也就是說最好能在實際的項目開發中鍛煉,而不是為了學習而學習。在實踐的過程中要多思考,多想想問題出現的原因,問題解決后要多問幾個為什么,這也是經驗積累的過程,如果有寫項目日志的習慣更好,把問題及原因、解決的辦法都寫進去。最后還要多問,遇到問題思索后還得不到解決就要問了,畢竟個人的力量是有限的,問同學同事,問搜索引擎,問網友,都可以,一篇文章、朋友們的點撥都可能幫助自己快速解決問題。
本文地址:http://m.qingdxww.cn/thread-131649-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
eda_gb 發表于 2014-8-8 21:25:51
不錯
eda_gb 發表于 2014-8-8 21:26:42
有意 eMMC控制器  QQ595767580
baowenhit 發表于 2015-1-3 16:49:07
大神你好,有些用FPGA的eMMC控制問題請教,可以嗎
韋可可 發表于 2015-8-24 10:04:09
樓主有技術上問題請教,83527759
韋可可 發表于 2015-8-24 10:04:25
樓主有技術上問題請教,QQ83527759
韋可可 發表于 2015-8-24 10:05:03
樓主有項目可以合作,QQ83527759
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 實時控制解決方案的正確選擇——數字信號控制器(DSC)或通用MCU
  • 探索PIC16F13145 MCU系列——快速概覽
  • dsPIC® DSC:攻克各種觸摸傳感挑戰的電容式觸摸解決方案
  • PIC32CM LS60 Curiosity Pro評估工具包
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲国产天堂久久综合网站| 亚洲天堂一区二区三区四区| 亚洲天堂三级| 四虎影院美女| 日韩欧美一中文字幕不卡| 特级毛片视频在线| 手机看片福利久久| 一级毛片免费毛片一级毛片免费| 天天综合色网| 色播亚洲视频在线观看| 色综合色国产热无码一| 青免费视频| 亚洲色图3p| 午夜在线观看免费| 欧美福利| 三级黄在线播放| 四虎永久| 天堂在线国产| 欧美一级看片a免费观看| 四虎影视免费永久在线观看| 一级片国产| 欧美午夜精品| 亚洲三级自拍| 日本精品久久久久中文字幕| 亚洲成人aaa| 一级片视频播放| 亚洲国产成人综合| 日日夜夜伊人| 亚洲国产精品第一页| 一级鲁丝片| 青草国产在线| 青青热久| 日本96在线精品视频免费观看| 午夜视频高清在线aaa| 日韩精品在线播放| 日韩精品第二页| 亚洲激情在线| 亚洲欧美日本国产综合在线| 亚洲综合激情在线影院| 香蕉久草| 色吊丝一区二区|