FPGA設計學(xué)習經(jīng)驗小談

發(fā)布時(shí)間:2009-5-23 10:30    發(fā)布者:FPGA
關(guān)鍵詞: FPGA , 經(jīng)驗 , 設計 , 學(xué)習
下面的內容轉自EDAcn論壇,對初學(xué)者會(huì )有幫助。
看的時(shí)候腦子多轉幾下,不要被動(dòng)的接受!!
from http://www.edacn.net/bbs/viewthread.php?tid=9851&extra=page%3D4
********************************************************************

很久沒(méi)有發(fā)帖子了,很對不住大家。工作上已經(jīng)不做FPGA了,并且工作上太忙。今天跟一個(gè)人聊FPGA,我就將我當時(shí)的一些話(huà)貼出來(lái),大家就當隨便看看,浪費一兩分鐘時(shí)間。
有人問(wèn)我,三態(tài)門(mén)自己寫(xiě)了一個(gè)程序,卻調試不出來(lái)。當然,我現在也沒(méi)有用語(yǔ)言自己寫(xiě)一個(gè)三態(tài)門(mén)出來(lái),我更習慣Ip Core里面的Tribuffer。自己編寫(xiě)的,是需要有點(diǎn)技巧,尤其是在控制信號那個(gè)地方。最好還是用ip。悖铮颍,用ip。悖铮颍宓暮锰幵谟谡麄(gè)電路非常清晰。我曾經(jīng)嘗試著(zhù)自己寫(xiě)一個(gè)三態(tài)門(mén),但是調試過(guò)程中發(fā)現問(wèn)題很多,所有后來(lái)干脆用系統提供的了。
另外,她說(shuō)學(xué)習語(yǔ)言學(xué)了一個(gè)月,我覺(jué)得大可沒(méi)有這個(gè)必要。語(yǔ)言那東西,只是工具。并且,常用的語(yǔ)法也就那么多,所以根本沒(méi)有必要去專(zhuān)門(mén)學(xué)習。最好是用到的時(shí)候去查一下書(shū),或者查一下外國人寫(xiě)的那個(gè)電子版的handbook。
拿到一個(gè)設計要求后,首先就用你學(xué)到的數字電路知識把整個(gè)系統大體給搭一個(gè)原理圖出來(lái),就像是用protel作電路板一樣。什么地方能用一個(gè)譯碼器就可以解決了,什么地方能用一個(gè)復用器就可以解決了,等等。等到你明白了這些,就應該很容易的做FPGA了。我一開(kāi)始也是總在看別人說(shuō)哪個(gè)語(yǔ)言好\哪個(gè)工具好,并且一開(kāi)始覺(jué)得原理圖設計輸入方法是最笨的,但是到后來(lái),我忽然發(fā)現,這才是真正的高手。系統設計的頂層最好采用原理圖模式,這樣整個(gè)系統非常清晰,便于多人和自己維護,而在一些低層模塊,可以用ip core的,盡量用ip core;不行的,就把功能細分,每一個(gè)子功能寫(xiě)一個(gè)vhd或v文件,然后編譯成symbol,在原理圖中調用symbol。
我只是在這里泛泛而談,希望能夠對初學(xué)者有一點(diǎn)幫助,如果有說(shuō)得不對的地方,希望大家多多指正。

by  channelelle

*******************************************************************

其實(shí)FPGA不是學(xué)會(huì )的,是做會(huì )的。遇到問(wèn)題,解決問(wèn)題和總結經(jīng)驗,不斷往復,水平就提高了。
剛開(kāi)始做,誰(shuí)都會(huì )遇到問(wèn)題。這時(shí)候不要動(dòng)不動(dòng)就張口問(wèn)別人,要自己多想一想,試一試。比如,剛焊好的板子,上電后,下載不了,這是一個(gè)新手經(jīng)常遇到的問(wèn)題。
一般來(lái)說(shuō),大多數人會(huì )去檢查下載電路的原理圖,如果發(fā)現和正確的原理圖沒(méi)有區別就沒(méi)辦法了,開(kāi)始懷疑芯片是不是壞了,焊接是不是有問(wèn)題,是不是哪里有干擾啊等等。
而有的細心一些的人,就會(huì )仔細的看看下載的原理,信號的時(shí)序,用示波器看看板上信號的時(shí)序,一步一步的找原因。如果沒(méi)有找到,就會(huì )仔細檢查FPGA的電路,從電源設計,到去耦電容擺放等等方面去動(dòng)手查找原因。如果覺(jué)得那里有問(wèn)題,就動(dòng)手改一看看,測一側有沒(méi)有改變,而不是坐著(zhù)想哪里出問(wèn)題。
可能最后就是芯片壞了,或者沒(méi)有焊接好,但是后者確在這個(gè)過(guò)程中學(xué)到了很多東西,至少對FPGA下載的原理了解的十分清楚。
以上是隨便舉的一個(gè)例子,還有一點(diǎn)要忠告大家的就是不要輕易的懷疑芯片有問(wèn)題,如果電路工作不正常,那么99%的原因是和設計有關(guān)的,是可以找到確定的原因的,而不是偶然的,即使是噪聲或者干擾。

by RedLogic

****************************************************************


FPGA這東西最需要的就是自己去實(shí)際動(dòng)手編寫(xiě)程序,哪怕僅僅是編寫(xiě)一個(gè)737,只有在不斷的編寫(xiě)調試的過(guò)程中才能找到感覺(jué)。同意樓上的觀(guān)點(diǎn),不要過(guò)分的去看語(yǔ)法,常用的其實(shí)不多。我剛開(kāi)始也是認為整個(gè)系統全部用語(yǔ)言編寫(xiě)最好,通過(guò)個(gè)人的經(jīng)驗教訓才發(fā)現,頂層文件最后用原理圖。
還有個(gè)建議就是平時(shí)多自己編寫(xiě)聯(lián)系一些東西,比如花點(diǎn)時(shí)間編一點(diǎn)任意分頻器啊鎖相環(huán)啊什么的,從中會(huì )找到很多樂(lè )趣。當然必須要遇到很多困難才有樂(lè )趣了。如果什么困難都沒(méi)有,那只能說(shuō)您是高手了。
還有就是要互相之間多討論,每個(gè)人的觀(guān)點(diǎn)都可能是你學(xué)習的內容。
也亂想到這里.
還有要補充一點(diǎn)就是如果是做系統的設計,最后一定用同步系統。

by bluetooth884

****************************************************************

我是一個(gè)新新手,我也來(lái)說(shuō)幾句。我開(kāi)始學(xué)EDA也有一年時(shí)間,開(kāi)始我學(xué)verilog語(yǔ)言,當時(shí)沒(méi)有條件,電腦沒(méi)有,學(xué)習板也沒(méi)有。我就天天看語(yǔ)法,看別人的程序。一直到今年3月份條件才改善,有自己的電腦和學(xué)習板,老師教是用VHDL,所以我就改學(xué)這個(gè)了。因為要準備9月份的電子競賽,所以要提前學(xué),憑老師教的那點(diǎn)東西肯定是不夠的,我只花了一個(gè)星期的時(shí)間把很常用的語(yǔ)法記住,然后再花兩個(gè)星期的時(shí)間看別人的程序,從別人的程序中學(xué)會(huì )基本格式。開(kāi)始進(jìn)步很慢,主要阻力是軟件不會(huì )使用,全憑自己去摸索要很長(cháng)時(shí)間,4月 12,13兩天聽(tīng)了潘松老師的兩天課,他主要是講quartus的使用,感覺(jué)那兩天學(xué)了很多東西。軟件基本會(huì )使用后開(kāi)始自己慢慢的編小程序,但真正要提高還是具體做點(diǎn)什么東西。接下來(lái)兩個(gè)星期老師布置了一個(gè)數字頻率計的題目,FPGA做處理,MCU做控制。但我對單片機不熟悉,結果下來(lái)感覺(jué)是單片機不能從FPGA讀數據,題目沒(méi)有完成。但這次具體的應用讓我也學(xué)到很多東西,系統時(shí)鐘,保持時(shí)間,建立時(shí)間等等一些很基本的概念,這些在高手們看來(lái)可能是再簡(jiǎn)單不過(guò)的東西,但一個(gè)新手全憑自己的摸索去了解這些東西已經(jīng)是很不容易了。我沒(méi)有夸自己的意思,我是想說(shuō)真正要學(xué)到東西,一定要投入到具體的項目中去,這些話(huà)前輩們已經(jīng)說(shuō)過(guò)很多次。還有一點(diǎn)想說(shuō)的就是,新手不要好高騖遠,我就犯了這樣的錯誤,最基本的沒(méi)搞懂,我就想去學(xué)嵌入式系統。
我現在水平還非常非常有限,真正要我獨立完成一個(gè)小系統的設計還很困難。有很多基本的東西我還不懂,但我很想學(xué)好這個(gè)。上次那個(gè)題目沒(méi)有做出來(lái),老師好像不怎么相信我的EDA了(呵呵)。再老師對這個(gè)不熟悉,他就什么東西只想用模電和單片機做出來(lái),其實(shí)給我很大感覺(jué)就是對于同一個(gè)題目EDA可以在很大程度上弱化單片機,使題目變的更加容易實(shí)現。所以現在要加緊學(xué)好,到9月份還不到半年的時(shí)間了,我能學(xué)成什么樣子呢?我們這里教EDA的老師很少,就2個(gè),給我們上課的老師講了半學(xué)期的ABEL。很多不懂的東西沒(méi)人問(wèn),只能在這里發(fā)發(fā)帖子問(wèn)問(wèn)這里熱心的人了。
感謝曾經(jīng)給過(guò)我莫大幫助的DX們。希望你們的幫助讓我有質(zhì)的飛躍!

by  fenglouto1

***************************************************************

to channelelle:雖然前面回文的評價(jià)還可以,但是我想我還是應該很直接要指出你其中很多的錯誤思想,我不想有更多的受到誤導,請原諒我說(shuō)的比較直接。
系統級的設計我們?yōu)槭裁催需要畫(huà)原理圖?我們在總體設計方案中可以將一級模塊劃分好,將一級模塊的接口時(shí)序定義好,完完全全沒(méi)有必要用畫(huà)原理圖,除非你在做設計之前是不做方案的或者方案做的很差。
我們要求設計要盡量的做到與器件無(wú)關(guān)(除了FIFO、PLL等),你這樣畫(huà)原理怎么實(shí)現平臺的無(wú)關(guān)性?如果我之前用的是altera的器件,現在要轉成xilinx的,你那原理圖還能用?
一般來(lái)說(shuō)芯片廠(chǎng)家的EDA工具綜合性能都一般,如果你要用第三方綜合工具怎么辦?
還有,你這樣畫(huà)原理圖那仿真怎么辦?你該不會(huì )用quartus下畫(huà)波形圖吧?我們大的設計用modelsim都要跑幾個(gè)小時(shí),你畫(huà)原理圖怎么在第三方仿真軟件下做仿真?
還有,如果畫(huà)原理圖有用,人家還要弄個(gè)systemC、E語(yǔ)言、system verilog做什么?
另外,你為什么連寫(xiě)個(gè)三態(tài)門(mén)還要調core,一行就可以描述出來(lái)的呀!

by wangdian

*************************************************************

看了大家的發(fā)言,覺(jué)得自己還是要暴露一下自己的問(wèn)題了。我呢,畢業(yè)時(shí)到公司直接就接觸了公司以前的設計內容,為了更快的完成任務(wù),只能在以前的系統設計上修修改改,慢慢的發(fā)現一些問(wèn)題,但是也只能一步一步來(lái),所以就開(kāi)始學(xué)習語(yǔ)言,因為有些東西確實(shí)用語(yǔ)言來(lái)設計輸入比較快。但是為了和以前的系統一起工作,就有了很多限制,F在一直比較煩惱,為了這個(gè)系統。不知道何時(shí)才是一個(gè)頭。自己設計其實(shí)已經(jīng)比較習慣了原理圖的形式,因為剛開(kāi)始的時(shí)候都學(xué)習的那些,在這個(gè)轉換過(guò)程中是不是都會(huì )有一段比較迷茫?謝謝大俠們分享那么多的心得和知識,在這里我們學(xué)習到了很多。

by  kuangshunlan

**************************************************************

看到了很多和自己相似的經(jīng)歷。。。。
TO wangdian:channelelle的意思你可能理解錯了,他其實(shí)是想說(shuō),對系統而言要模塊化,便于大系統調試,調用IP CORE是一種優(yōu)化、快捷的方式。也許channelelle的思想更適合技術(shù)的市場(chǎng)化,對企業(yè)而言講求的是效率、速度,做研究嘛,你可以從三級管去研究起,呵呵~~這也是北京與深圳的區別,不可否認北京牛人很多。。。但是。。。。。
當然FPGA還是屬于硬件,對綜合出來(lái)的各個(gè)功能模塊要有深刻的理解,盡量從寄存器級去考慮它的性能,而不是行為級。

by  xiaozheng

**************************************************************

:同意wangdian。
原理圖輸入應該盡量拋棄,系統設計必須考慮前期調試、后期維護和移植。
xiaozheng的話(huà)有些牽強,說(shuō)什么北京和深圳的區別就是風(fēng)涼話(huà)了,大家都是搞技術(shù)的,就事論事,IP Core要看什么場(chǎng)合,三態(tài)門(mén)一句話(huà)就搞定了你還要用Ip core,在這里開(kāi)壇講座如何讓人信服?

by  duohaodai

****************************************************************
re:duohaodai
我不反對各分模塊用語(yǔ)言來(lái)描述,但是頂層用原理圖描述條理更加清晰,也方便別人參閱,元件例化一大堆誰(shuí)明白?當然,如果你的資料整理的比較好,并另給出總體結構圖也是可以的,移植的確是個(gè)問(wèn)題,不過(guò)現在的企業(yè)有又誰(shuí)同時(shí)在使用幾個(gè)平臺的呢。
IPcore為什么老是要咬住三態(tài)門(mén)來(lái)討論?說(shuō)白了,大多數企業(yè)干的就是調函數包,底層核心的開(kāi)發(fā)你還是去altera\xilinx\micosoft\ibm去研究吧

by  xiaozheng

***************************************************************

我也來(lái)說(shuō)兩句吧,
做設計前就應該考慮好系統結構,這叫成竹在胸:)
而具體到設計實(shí)現階段的話(huà),原理圖輸入是沒(méi)有必要地,
還有、對于一些小的底層單元,比如shifter,mux,adder等等,
還是不要采用實(shí)例化ip core模塊的方式為好,用HDL語(yǔ)言描述就好了(這叫引用模塊的方式叫inference),
原因就是在設計實(shí)現的階段、要充分考慮到design portable ,code reusable 。

by  chips

*************************************************************

我覺(jué)得大家有些誤解原理圖輸入方法了,在做大系統時(shí),一定要自頂向下的設計,當每個(gè)底層模塊用語(yǔ)言設計完畢并且仿真調試OK后,將其編譯為圖形模塊,然后在頂層用原理圖輸入的方法調用這些模塊,將各個(gè)模塊用信號線(xiàn)連接起來(lái),構成整個(gè)系統。這里所說(shuō)的原理圖輸入的方法并不是一定要用各種標準的邏輯元件組裝電路,而是用語(yǔ)言設計的功能模塊組成系統?催@樣設計的頂層文件,系統結構一目了然,這和純語(yǔ)言設計前所做的系統邏輯框圖是一樣的,都是為了清晰的描述系統結構。
當然,是用純語(yǔ)言設計好,還是用圖形輸入法設計頂層再調用用語(yǔ)言設計的底層模塊也好,我看這兩種方法都好,應根據個(gè)人的愛(ài)好和習慣而定,就象用VHDL語(yǔ)言或用Verilog HDL語(yǔ)言都能設計好的系統一樣,大家說(shuō)呢?

by  楓

***********************************************************

各位,你們做過(guò)多大的系統啊,老是在這里誤導別人?這篇文章寫(xiě)的幾乎全是誤導別人的話(huà),就拜托你們別在叫好了!
層次結構不是靠原理圖保證的,是靠文檔!系統級建模也不會(huì )用原理圖去做啊,不然大家去弄個(gè)system C、system verilog做什么?

by  wangdian

***********************************************************

迫不及待的看完六頁(yè),有很多是跟我想法相同的,也有不一樣的。
工具這東西(包含語(yǔ)言)只要用熟了應該都好用。但相比之下肯定有個(gè)容不容易上手的問(wèn)題,當然前提是都對新手而言,如果要一個(gè)畫(huà)了幾年原理圖的去用Verilog或是VHDL語(yǔ)言,當然感覺(jué)很不爽。
我個(gè)人認為為什么在有了原理圖設計法的前提下又開(kāi)發(fā)出Verilog等語(yǔ)言,肯定是有一定道理的。對新手而言,這些語(yǔ)言絕對更容易上手,而且還有很多其它的優(yōu)點(diǎn)。但肯定也有它自身的不足,呵呵。
重要的不是開(kāi)發(fā)工具,而是開(kāi)發(fā)思想。

by dsp20tlh

**********************************************************

首先就用你學(xué)到的數字電路知識把整個(gè)系統大體給搭一個(gè)原理圖出來(lái),就像是用protel作電路板一樣。什么地方能用一個(gè)譯碼器就可以解決了,什么地方能用一個(gè)復用器就可以解決了,等等。等到你明白了這些,就應該很容易的做FPGA了
聽(tīng)起來(lái)好象整個(gè)FPGA設計都是在做數字電路設計了

by  tianhun

*********************************************************

我認為,你說(shuō)的非?陀^(guān)、也很誠懇。我也作了一段時(shí)間的FPGA了。
由于我自小就對電子技術(shù)很感興趣,經(jīng)常擺弄一些電子器件,所以對硬件的理解更深入一些,所以對于我來(lái)說(shuō),我開(kāi)始做FPGA設計的時(shí)候,就是直接從原理圖輸入開(kāi)始的。我認為這樣容易理解,而且非常直觀(guān)。當讓致命的缺點(diǎn)就是設計移植性能不好。
我現在也在強迫自己將一些簡(jiǎn)單模塊用語(yǔ)言去寫(xiě)出來(lái),封裝成模塊,到原理圖中去調用。
今天看到您的帖子,我很高興自己的一些設計方法可以得到高手的認同。
我現在也是剛剛開(kāi)始學(xué)習Verilog。由于習慣于理解原理圖輸入,我只能強迫自己去用語(yǔ)言。因為很多人都告誡我,很多大公司都要求用語(yǔ)言進(jìn)行設計,所以為了以后能混口飯吃,還是要學(xué)些語(yǔ)言。
我的郵箱地址:fylouis@126.com
期待著(zhù)與高手交流經(jīng)驗與心得。

by  fylouis

*******************************************************

雖然來(lái)晚了,還是要雙手贊同。
在總體設計方案中將一級模塊劃分好,將接口時(shí)序定義好,沒(méi)有必要用畫(huà)原理圖。這種方法似乎清楚,但是既然把設計都能畫(huà)出來(lái),那在在文檔中體現功能框圖和接口連接關(guān)系應該比較容易,可能在設計初期修改方案采用原理圖比較方便而已。我們采用高級語(yǔ)言來(lái)設計,盡量要作到和器件無(wú)關(guān)。況且,當產(chǎn)品上量后,要不要投 ASIC來(lái)降低成本?當工藝提高后,采用ASIC實(shí)現的成本有可能比采用FPGA低很多。這個(gè)時(shí)候就出現問(wèn)題了,設計怎么移植?有可能重新設計,仿真。

by   goldlion98

*****************************************************

在FPGA領(lǐng)域可能還有原理圖一說(shuō),但在A(yíng)SIC基本無(wú)此觀(guān)點(diǎn),可能說(shuō)玄了就是電路在我心,基本兩個(gè)字同步。
對于設計而言,我也不反對用原理圖,因為每個(gè)人都有一個(gè)學(xué)習得過(guò)程成長(cháng)的過(guò)程,但如果你要做IC,就可以在以后拋調原理圖。
對于初學(xué)者可以先用原理圖,在頂層用原理圖是一些FPGA設計者喜歡的方法,其實(shí)無(wú)可厚非因為不作IC,但是在底層用原理圖我不推薦,因為那會(huì )阻礙你前進(jìn)的步伐。

by   jjliu

*****************************************************

呵呵,在FPGA做頂層模塊時(shí),原理圖也好,程序描述也好,看個(gè)人習慣了,總之就是要做到結構清晰,便于修改和維護即可。不過(guò)個(gè)人覺(jué)得,使用原理圖方式的確會(huì )碰到程序移植方面的問(wèn)題,我自己更習慣于用程序來(lái)描述各模塊之間的連接。
至于看前面帖子有人這么說(shuō)“真正的牛人都是搭底層電路設計的…” 我是這么理解的,能用底層電路搭起自己所需要的設計的,證明ta對整個(gè)設計理解很深,理解已經(jīng)到了rtl級,而不是只停留在行為級的理解上。因此所謂之! 呵呵,個(gè)人理解,歡迎拍磚。
不過(guò),還是覺(jué)得hdl語(yǔ)言方便些,當然可能有人覺(jué)得自己用基本電路搭更得心應手,更可控;但如果你能夠充分地理解你用hdl語(yǔ)言,并保證描述的電路綜合之后就是你想要的,那我覺(jué)得那也是高手~ 只是高手和高手的習慣不同而已… :)
本文地址:http://selenalain.com/thread-3005-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。

相關(guān)在線(xiàn)工具

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页