<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 牛人業(yè)話(huà) > FPGA設計經(jīng)驗談

FPGA設計經(jīng)驗談

—— 走起—FPGA的一些小經(jīng)驗
作者:friends 時(shí)間:2013-08-14 來(lái)源:電子產(chǎn)品世界 收藏

  5)關(guān)于和乒乓操作的那點(diǎn)事

本文引用地址:http://dyxdggzs.com/article/158978.htm

  經(jīng)驗告訴我,能使用開(kāi)發(fā)工具自帶的,就千萬(wàn)別去自己開(kāi)發(fā)。往往自己開(kāi)發(fā)已有的是吃力不討好。我曾經(jīng)做過(guò)一個(gè)eMMC控制器燒寫(xiě)外部eMMC芯片的案子。

  數據由上位機通過(guò)USB傳給MCU,然后通過(guò)數據總線(xiàn)發(fā)到,在內部形成燒寫(xiě)eMMC芯片的時(shí)序,燒寫(xiě)外部芯片??驁D如下:

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

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

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

逆變器相關(guān)文章:逆變器原理


fpga相關(guān)文章:fpga是什么


可控硅相關(guān)文章:可控硅工作原理


pwm相關(guān)文章:pwm是什么


c語(yǔ)言相關(guān)文章:c語(yǔ)言教程


逆變器相關(guān)文章:逆變器工作原理


比較器相關(guān)文章:比較器工作原理



上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: FPGA EDA VHDL Verilog 時(shí)鐘 IP核

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>