|
第一句話是:還沒(méi)學(xué)數(shù)電的先學(xué)數(shù)電。然后你可以選擇verilog或者VHDL,有C語(yǔ)言基礎(chǔ)的,建議選擇VHDL。因?yàn)関erilog太像C了,很容易混淆,最后你會(huì)發(fā)現(xiàn),你花了大量時(shí)間去區(qū)分這兩種語(yǔ)言,而不是在學(xué)習(xí)如何使用它。當(dāng)然,你思維能轉(zhuǎn)得過(guò)來(lái),也可以選verilog,畢竟在國(guó)內(nèi)verilog用得比較多。
接下來(lái),首先找本實(shí)例抄代碼。抄代碼的意義在于熟悉語(yǔ)法規(guī)則和編譯器(又叫綜合器),常用的集成開(kāi)發(fā)環(huán)境有:Intel的Quartus、Xilinx的ISE和Vivado、Design Compiler 、Synopsys的VCS、Linux下的iverilog、Lattice的Diamond、Microchip的Libero、Synplify pro,然后再模仿著寫,最后不看書(shū)也能寫出來(lái)。編譯完代碼,就打開(kāi)RTL圖,看一下綜合出來(lái)是什么樣的電路。
HDL是硬件描述語(yǔ)言,突出硬件這一特點(diǎn),所以要用數(shù)電的思維去思考HDL,而不是用C語(yǔ)言或者其它高級(jí)語(yǔ)言,如果不能理解這句話的,可以看《什么是硬件以及什么是軟件》。在這一階段,推薦的教材是《Verilog HDL高級(jí)數(shù)字設(shè)計(jì)》或者是《用于邏輯綜合的VHDL》。不看書(shū)也能寫出個(gè)三段式狀態(tài)機(jī)就可以進(jìn)入下一階段了。
此外,你手上必須準(zhǔn)備Verilog或者VHDL的官方文檔,《verilog_IEEE官方標(biāo)準(zhǔn)手冊(cè)-2005_IEEE_P1364》、《IEEE Standard VHDL Language_2008》,以便遇到一些語(yǔ)法問(wèn)題的時(shí)候能查一下。
二、獨(dú)立完成中小規(guī)模的數(shù)字電路設(shè)計(jì)。
現(xiàn)在,你可以設(shè)計(jì)一些數(shù)字電路了,像交通燈、電子琴、DDS等等,推薦的教材是《Verilog HDL應(yīng)用程序設(shè)計(jì)實(shí)例精講》。在這一階段,你要做到的是:給你一個(gè)指標(biāo)要求或者時(shí)序圖,你能用HDL設(shè)計(jì)電路去實(shí)現(xiàn)它。這里你需要一塊開(kāi)發(fā)板,可以選Altera的cyclone IV系列,或者Xilinx的Spantan 6。還沒(méi)掌握HDL之前千萬(wàn)不要買開(kāi)發(fā)板,因?yàn)槟阗I回來(lái)也沒(méi)用。這里你沒(méi)必要每次編譯通過(guò)就下載代碼,咱們用modelsim仿真(此外還有QuestaSim、NC verilog、Diamond的Active-HDL、VCS、Debussy/Verdi等仿真工具),如果仿真都不能通過(guò)那就不用下載了,肯定不行的。在這里先掌握簡(jiǎn)單的testbench就可以了。推薦的教材是《WRITING TESTBENCHES Functional Verification of HDL Models》。
三、掌握設(shè)計(jì)方法和設(shè)計(jì)原則。
你可能發(fā)現(xiàn)你綜合出來(lái)的電路盡管沒(méi)錯(cuò),但有很多警告。這個(gè)時(shí)候,你得學(xué)會(huì)同步設(shè)計(jì)原則、優(yōu)化電路,是速度優(yōu)先還是面積優(yōu)先,時(shí)鐘樹(shù)應(yīng)該怎樣設(shè)計(jì),怎樣同步兩個(gè)異頻時(shí)鐘等等。推薦的教材是《FPGA權(quán)威指南》、《Altera FPGA/CPLD設(shè)計(jì)》第二版的基礎(chǔ)篇和高級(jí)篇兩本。學(xué)會(huì)加快編譯速度(增量式編譯、LogicLock),靜態(tài)時(shí)序分析(timequest),嵌入式邏輯分析儀(signaltap)就算是通關(guān)了。如果有不懂的地方可以暫時(shí)跳過(guò),因?yàn)檫@部分還需要足量的實(shí)踐,才能有較深刻的理解。
四、學(xué)會(huì)提高開(kāi)發(fā)效率。
因?yàn)镼uartus和ISE的編輯器功能太弱,影響了開(kāi)發(fā)效率。所以建議使用Sublime text編輯器中代碼片段的功能,以減少重復(fù)性勞動(dòng)。Modelsim也是常用的仿真工具,學(xué)會(huì)TCL/TK以編寫適合自己的DO文件,使得仿真變得自動(dòng)化,推薦的教材是《TCL/TK入門經(jīng)典》。你可能會(huì)手動(dòng)備份代碼,但是專業(yè)人士都是用版本控制器Git的,可以提高工作效率。文件比較器Beyond Compare也是個(gè)比較常用的工具,Git也有比較功能。此外,你也可以使用System Verilog來(lái)替代testbench,這樣效率會(huì)更高一些。如果你是做IC驗(yàn)證的,就必須掌握System Verilog和驗(yàn)證方法學(xué)(UVM)。推薦的教材是《Writing Testbenches using SystemVerilog》、《The UVM Primer》、《System Verilog1800-2012語(yǔ)法手冊(cè)》。
掌握了TCL/TK之后,可以學(xué)習(xí)虛擬Jtag(ISE也有類似的工具)制作屬于自己的調(diào)試工具,此外,有時(shí)間的話,最好再學(xué)個(gè)python。腳本,意味著一勞永逸。 |
|