Quartus_II_110學(xué)習(xí)與應(yīng)用_第1頁
Quartus_II_110學(xué)習(xí)與應(yīng)用_第2頁
Quartus_II_110學(xué)習(xí)與應(yīng)用_第3頁
Quartus_II_110學(xué)習(xí)與應(yīng)用_第4頁
Quartus_II_110學(xué)習(xí)與應(yīng)用_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、u 菜單欄中,Ø Assignments(資源分配):主要是對工程參數(shù)進行配置,如引腳分配、時序約束、參數(shù)設(shè)置等;Ø Process(操作):主要對當(dāng)前工程執(zhí)行各種設(shè)計流程,如綜合、布局、布線、時序分析等。Ø Tool:用來調(diào)用Quaruts 中集成的一些工具,如MegaWizard Plug-InManger(用來生產(chǎn)IP核和宏單元模塊)、RTL View、Programmer等。EDA工具應(yīng)用u 建立項目文件:1. 創(chuàng)建工程:在新建工程時,一定要注意頂層文件名與module別名一致,否則編譯會出現(xiàn)頂層文件未定義的錯誤。當(dāng)頂層文件包含有其他模塊時候,需要先編譯頂

2、層文件中的各個模塊,最后編譯頂層模塊。就是說,只要建工程是命名的頂層文件名和實際的頂層文件模塊名一樣,就可以先編譯工程中的其他模塊而不會報上面的錯誤!還有,一旦創(chuàng)建工程以后,就不要再更改工作所在文件夾名稱,否則下次就會打不開此工程。2. 選擇芯片:注意,下面的avilable device也要選,否則在映射引腳是軟件找不到對應(yīng)的芯封裝。3. 工具設(shè)置:,(如果選擇默認(rèn)設(shè)置的話,就是使用Quartus自帶的設(shè)計工具,當(dāng)然可以選擇第三方軟件)編輯和設(shè)計輸入:同樣可以選擇原理圖輸入、HDL輸入、狀態(tài)圖輸入以及混合輸入等方式。u 設(shè)計輸入:1. 原理圖輸入:2. HDL輸入:3. 狀態(tài)圖輸入:u 邏輯

3、編譯檢查::u 軟件仿真:(Quartus 9.1以后不再支持建立波形文件,用戶需配合使用Modelsim進行仿真)。Ø 關(guān)于仿真:(對于硬件描述語言對現(xiàn)代數(shù)字邏輯系統(tǒng)的描述層次,不同層次的仿真?zhèn)€有特點)1. 系統(tǒng)級:稱為ESL級,即從系統(tǒng)角度進行描述而忽略電路的實際構(gòu)成。2. 行為級:從電路的工作行為、功能的實現(xiàn)出發(fā)而不考慮具體電路構(gòu)成的描述。3. RTL級:從信號的傳輸、寄存器的設(shè)置角度描述。4. 門級:考慮最基本門級元件構(gòu)成系統(tǒng)描述。5. 開關(guān)級(管子級):從基礎(chǔ)的MMOS開關(guān)、晶體管、電阻對電路進行描述。·6. 物理級:從基本電子物理模型,如載流子遷移或能級模型角度

4、的描述(只在模擬電路建模是才用到)Ø Quartus 9.1之前(利用Quartus中的門級仿真器,主要依據(jù)是基于HDL、模塊原理圖、狀態(tài)機經(jīng)由綜合與適配的網(wǎng)表格式文件對應(yīng)的仿真文件,仿真類型包括時序仿真和功能仿真。):1. 建立仿真波形文件2. 設(shè)置仿真時間區(qū)域3. 添加仿真信號4. 編輯仿真信號5. 時序仿真6. 功能仿真Ø Modelsim(又稱之為行為仿真,是一種編譯型仿真器,即直接對HDL源代碼進行仿真,也就是直接針對未經(jīng)綜合的仿真驗證能更直接、更迅速、更完整、更高效和更加符合一般意義上地了解HDL代碼描述的電路行為,此類仿真同樣能實現(xiàn)時序仿真和功能仿真) :1.

5、 建立仿真工程項目: 2. 編譯仿真文件:編譯前:右擊選Compile ALL編譯后:3. 裝載仿真模塊和仿真庫: ,右擊圖示編譯后生成的實體,選擇Simulate without optimization(優(yōu)化)啟動仿真。4. 執(zhí)行仿真:a) 選中clk信號,選主菜單下objects中的clock進行時鐘信號設(shè)置。b) 選中其它信號,選主菜單下objects中的force進行Value設(shè)置。c) 在 objects窗口中: ,右擊,選ADD下選To Wave下Signals in Design打開Wave波形窗口:d) 在命令欄中輸入run 5000 ,(run必須小些,后面的仿真時間與ru

6、n空格隔開,沒run x一次都是在原來的基礎(chǔ)上添加x ns的仿真時間)u 全程綜合編譯:(檢錯,邏輯綜合,機構(gòu)綜合,輸出配置,時序分析,查看報表)1. 全程編譯前約束項目的設(shè)置:(選芯片,器件工作方式,配置或編程方式,器件端口狀態(tài))a) 點擊assignments選device后可以對芯片進行重新選擇:b) 選擇配置器件的工作方式:c) 選擇配置器件和編譯方式:d) 引腳映射: ,在選擇引腳的時候,可以從第一個引腳開始由上而下進行,雙擊第一個引腳,在列表里面選好引腳,然后回車,注意是用回車,然后刪掉PIN后面的數(shù)字,然后對照電路板原理圖手動修改引腳編號,重復(fù)此過程修改后面的引腳編號,數(shù)度要快些

7、 。另外,不同顏色標(biāo)識表明屬于不同的IO塊。 e) 選擇目標(biāo)器件引腳端口狀態(tài):將不使用的引腳設(shè)置為輸入狀態(tài)(即高阻態(tài)):2. 再次編譯,這次編譯不僅僅是邏輯檢查,還添加了上述約束項目的:u RTL圖觀察器使用:1. Tools下面Netlist Viewers下拉菜單中三個選項:RTL Viewer;Technology Map Viewer;State Machine Viewer;點擊相應(yīng)項目可以觀察相應(yīng)的圖:(雙擊該模塊,可逐層了解各層次電路結(jié)構(gòu))也可以通過上面工具欄查看各層次電路結(jié)構(gòu):2. 對于較為復(fù)雜的RTL電路圖,可以右擊該模塊,在彈出的菜單中選擇來寧波七:Filter下面sour

8、ces或destinations命令,由此產(chǎn)生相應(yīng)的簡化電路。u 下載:,或者Tool下面的programmer。ØØØ JTAG下載說明:1. 選擇下載模式:2. 添加硬件:,3. 添加文件:Add File:,JTAG下載的是.SOF文件。,這里打勾說明添加文件正確。Ø AS 下載說明:1. File下面Comvert Programming Files···2. 選擇器件:VHDL編程心得:Ø 關(guān)于端口說明: 1. 標(biāo)點符號要在英文半角狀態(tài)下輸入。2. 頂層模塊端口聲明一定要和最后端口映射一一對應(yīng)而且位寬也要

9、一一對應(yīng):外部端口內(nèi)部連線,線名自定。3. 關(guān)于位寬選取,可以批量?。篞28<=Q_28; 也可以單獨?。篞8<=(Q(27),Q(26),Q(25),Q(24),Q(23),Q(22),Q(21),Q(20);Ø 關(guān)于進程:進程(Process)是 VHDL 中最為重要的部分,大部分設(shè)計都會用到 Process結(jié)構(gòu),因此掌握Process的使用顯得尤為重要。以下是初學(xué)和使用 Process經(jīng)常會出錯的例子。 1. 多余時鐘的引入 在設(shè)計時往往會遇到這種情況,需要對外部某個輸入信號進行判斷,當(dāng)其出現(xiàn)上跳或下跳沿時,執(zhí)行相應(yīng)的操作,而該信號不像正常時鐘那樣具有固定占空比和周

10、期,而是很隨機,需要程序設(shè)計判斷其上跳沿出現(xiàn)與否。這時,很容易寫出如下程序: process(Ctl_a) - Ctl_a 即為該輸入信號 begin if Ctl_a event and Ctl_a= 1 then ; - 執(zhí)行相應(yīng)操作 end if ; end process; 由于出現(xiàn)第行這類語句,綜合工具自動默認(rèn) Ctl_a為時鐘,某些 FPGA 更會強行將該輸入約束到時鐘引腳上。而設(shè)計者的初衷只是想將其作為下位機的狀態(tài)輸入以進行判斷。上面的程序容易造成多時鐘現(xiàn)象,增加設(shè)計的難度。解決的辦法可以如下,將 Ctl_a增加一級狀態(tài)Ctl_areg 寄存,通過對 Ctl_a和Ctl_areg

11、 狀態(tài)判斷上跳與否,改正程序如下: process(clk) begin if clk event and clk= 1 then Ctl_areg<=Ctl_a;-產(chǎn)生相鄰狀態(tài) if Ctl_areg=0 and Ctl_a= 1 then- 上跳判斷 ; - 執(zhí)行相應(yīng)操作 end if; end if; end process; 程序中第行用以產(chǎn)生兩個相鄰狀態(tài),第行對前后狀態(tài)進行判斷是否有上跳現(xiàn)象發(fā)生。其中,需注意的是clk 的時鐘頻率應(yīng)明顯快于 Ctl_a信號的變化頻率,以保證正確采樣。 2. 輸出多驅(qū)動 誤用Process經(jīng)常會引起輸出多驅(qū)動源的發(fā)生,即在兩個以上的進程內(nèi)對同一信

12、號賦值操作。以下程序就出現(xiàn)了這類情況: Proc_a: process(clk) begin if clk event and clk= 1 then Dout<=Din_A; end if end process; Proc_b:pro cess(sel_en) begin if sel_en=1 then Dout<=Din_B; end if; end process; 進程Proc_a 和Proc_b 中都出現(xiàn)了對 Dout的賦值語句,設(shè)計者原本的想法是,只要合理控制好clk 和sel_en 輸入,使其不發(fā)生沖突,即 clk 上升沿時sel_en 不為1;sel_en 為1

13、 時,不出現(xiàn) clk 的上升沿,這樣 Proc_a ,Proc_b 兩個進程就不會發(fā)生沖突。但綜合時,綜合工具會將所有可能情況全部羅列進去,包括第行和第行同時成立的情況,此時對于Dout就有Din_A 和Din_B 兩個輸入驅(qū)動,Dout不知接收哪一個,因此該程序無法綜合,改正的方法是只要將兩個進程合并成一個即可。 由于進程在VHDL 中的重要性,對此專門做了一個總結(jié)如下: (1 )一個進程中不允許出現(xiàn)兩個時鐘沿觸發(fā),(Xilinx 公司CoolRunner 系列CPLD 支持單個時雙鐘的雙觸發(fā)沿除外) (2 )對同一信號賦值的語句應(yīng)出現(xiàn)在單個進程內(nèi),不要在時鐘沿之后加上 else 語句,如 if clkevent and clk=1 then - else 的結(jié)構(gòu),現(xiàn)有綜合工具支持不了這種特殊的觸發(fā)器結(jié)構(gòu) (3 )當(dāng)出

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論