可編程邏輯器件設(shè)計(jì)技巧_第1頁(yè)
可編程邏輯器件設(shè)計(jì)技巧_第2頁(yè)
可編程邏輯器件設(shè)計(jì)技巧_第3頁(yè)
可編程邏輯器件設(shè)計(jì)技巧_第4頁(yè)
可編程邏輯器件設(shè)計(jì)技巧_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、可編程邏輯器件設(shè)計(jì)技巧1. 什么是.scf?答:scf文件是maxplusii的仿真文件, 可以在mp2中新建. 1 用altera_cpld作了一個(gè)186(主cpu)控制sdram的控制接口, 發(fā)現(xiàn)問題:要使得sdram讀寫正確, 必須把186(主cpu)的clk送給sdram, 而不能把clk經(jīng)cpld的延時(shí)送給sdram. 兩者相差僅僅4ns. 而時(shí)序通過(guò)邏輯分析儀測(cè)試沒有問題. 此程序在xilinx器件上沒有問題. 這是怎么回事?答:建議將所有控制和時(shí)鐘信號(hào)都從pld輸出, 因?yàn)閟dram對(duì)時(shí)鐘偏移(clock skew)很敏感, 而altera的器件pll允許對(duì)時(shí)鐘頻率和相位都進(jìn)行完

2、全控制. 因此, 對(duì)于所有使用sdram的設(shè)計(jì), altera的器件pll必須生成sdram時(shí)鐘信號(hào). 要利用sdram作為數(shù)據(jù)或程序存儲(chǔ)地址來(lái)完成設(shè)計(jì), 是采用megawizard還是plug-in manager來(lái)將一個(gè)pll在采用quartus ii軟件的設(shè)計(jì)中的頂層示例?可以選擇創(chuàng)建一個(gè)新的megafuntion變量, 然后在plug-in manager中創(chuàng)建altclklock(i/p菜單)變量. 可以將pll設(shè)置成多個(gè), 或是將輸入劃分開來(lái), 以適應(yīng)設(shè)計(jì)需求. 一旦軟件生成pll, 將其在設(shè)計(jì)中示例, 并使用pll的“clock”輸出以驅(qū)動(dòng)cpu時(shí)鐘輸入和輸出ip引腳. 2 在m

3、ax7000系列中, 只允許有兩個(gè)輸出使能信號(hào), 可在設(shè)計(jì)中卻存在三個(gè), 每次編譯時(shí)出現(xiàn)“device need too many 3/2 output enable signal”. 如果不更換器件(使用的是max7064lc68). 如何解決這個(gè)問題?答:each of these unique output enables may control a large number of tri-stated signals. for example, you may have 16 bidirectional i/o pins. each of these pins require an o

4、utput enable signal. if you group the signals into a 16-bit bus, you can use one output enable to control all of the signals instead of an individual output enable for each signal. (參考譯文:這兩個(gè)獨(dú)特的輸出使能中每個(gè)都可能控制大量三相信號(hào). 例如, 可能有16個(gè)雙向i/o引腳. 每個(gè)引腳需要一個(gè)輸出使能信號(hào). 如果將這些信號(hào)一起分組到一個(gè)16位總線, 就可以使用一個(gè)輸出使能控制所有信號(hào), 而不用每個(gè)信號(hào)一個(gè)輸出使

5、能. )3 關(guān)于vhdl的問題:process(a, b, c) begin end process; 如果a、b、c同時(shí)改變, 該進(jìn)程是否同時(shí)執(zhí)行三次?答:process statements 中的執(zhí)行跟邏輯有關(guān)系, 假如是同步邏輯, 則在每次時(shí)鐘的觸發(fā)沿根據(jù)a, b, c的條件來(lái)執(zhí)行一次;假如是異步邏輯, 則根據(jù)判斷a、b、c的條件來(lái)執(zhí)行. 一般我們都推薦使用同步邏輯設(shè)計(jì)4 在設(shè)計(jì)最初, 由于沒有將時(shí)鐘信號(hào)定義在全局時(shí)鐘引腳上, 導(dǎo)致maxplus ii 在時(shí)間分析時(shí)提示錯(cuò)誤:(時(shí)鐘偏斜加上信號(hào)延遲時(shí)間超過(guò)輸入信號(hào)建立時(shí)間). 全局時(shí)鐘引腳的時(shí)鐘信號(hào)到各個(gè)觸發(fā)器的延時(shí)最小, 有沒有可能通過(guò)

6、編譯軟件設(shè)置, 將普通i/o腳上的時(shí)鐘信號(hào)也經(jīng)過(guò)芯片內(nèi)部的快速通道以最小的延遲送到每個(gè)觸發(fā)器時(shí)鐘引腳? 答:you can register that signal and assign it as the global signal, by the step flow: assign-logic option-individual logic options-global signal. but youd better input the clock signal through the dedicated input pin. (參考譯文:可以寄存這個(gè)信號(hào), 并將它指定為全局信號(hào), 步驟如

7、下:指定邏輯選項(xiàng)個(gè)別邏輯選項(xiàng)全局信號(hào). 但是, 最好通過(guò)專用輸入引腳輸入時(shí)鐘信號(hào). ) 5 用maxplusii 軟件設(shè)計(jì)完后, 用delay matrix查看延遲時(shí)間. 由于內(nèi)部觸發(fā)器的時(shí)鐘信號(hào)用了一個(gè)輸出引腳的信號(hào), 譬如將一引腳clkout定義為buffer, clkout是一時(shí)鐘信號(hào), 然后反饋到內(nèi)部邏輯, 內(nèi)部邏輯用此信號(hào)作為時(shí)鐘信號(hào), 但用delay matrix, 卻查看不到一些信號(hào)相應(yīng)于clkout的延遲, 因?yàn)閏lkout是一output引腳, 在delay matrix source 一欄中沒有clkout信號(hào), 如何解決這個(gè)問題? 答:這種做法在邏輯設(shè)計(jì)中稱為gate c

8、lock, 所謂gate clock就是將設(shè)計(jì)中的組合邏輯結(jié)果拿來(lái)做時(shí)鐘信號(hào), 這是一種異步邏輯設(shè)計(jì). 現(xiàn)在都推薦使用同步邏輯設(shè)計(jì)方法. 可以將該信號(hào)(clkout)拿來(lái)作使能信號(hào), 即enable信號(hào), 而時(shí)鐘信號(hào)還是采用原來(lái)的統(tǒng)一時(shí)鐘, 使設(shè)計(jì)用盡量少的同步時(shí)鐘, 這樣一來(lái)就還是用delay matrix來(lái)分析原有的時(shí)鐘. 6 我是一個(gè)epld的初學(xué)者, 目前看到xilinx的virtex-ii中嵌入大量的資源如:powerpc、ram等, 究竟如何在fpga中使用這些資源?答:xilinx virtex-ii中嵌入的資源非常豐富, 如blockram、digital clock mana

9、ger、on-chip termination等等. ise 4.2i軟件完全支持這些資源. 可以舉出單元庫(kù)中相應(yīng)基本數(shù)據(jù)的實(shí)例. xilinx core generator中也還支持blockram等特性. 至于powerpc和mgt設(shè)計(jì), 可以使用virtex-ii pro開發(fā)者套件. 7 在設(shè)計(jì)中, 往往需要對(duì)某個(gè)信號(hào)做一定(任意長(zhǎng))的延時(shí), 有沒有好的方法來(lái)實(shí)現(xiàn)?而不是采用類似移位寄存器的方法來(lái)延時(shí). 答:使用移位寄存器在fpga中對(duì)信號(hào)進(jìn)行延時(shí)是一種好方法. xilinx virtex架構(gòu)中每個(gè)對(duì)照表(lut)都能夠設(shè)置成為具有可編程深度(最多為16)的移位寄存器. 這就提供了一種高

10、效的途徑來(lái)在fpga中實(shí)現(xiàn)移位寄存器. 無(wú)須使用觸發(fā)器就可以實(shí)現(xiàn)一個(gè)16位寄存器. 作為一個(gè)好的設(shè)計(jì)習(xí)慣, 任何情況下都不要通過(guò)閘延遲來(lái)實(shí)現(xiàn)延遲邏輯. 8 ise中的pad to pad constraint 是否是包括輸入輸出的pad時(shí)延之和再加上輸入輸出之間的組合邏輯的時(shí)延?還是只是輸入輸出之間的組合邏輯的時(shí)延?答:xilinx pad-to-pad contraint的確涉及到輸入輸出pad時(shí)延. 這從布局后時(shí)序報(bào)告中可以看出. 9 由于現(xiàn)在的設(shè)計(jì)基本上都是同步設(shè)計(jì), 那么pad to pad constraint 在什么情況下使用?答:雖然現(xiàn)今多數(shù)設(shè)計(jì)都是完全同步, 但仍有一些情況需要

11、從一個(gè)輸入引腳到另一個(gè)輸出引腳的純粹組合路徑. 因此, 仍然需要pad-to-pad constraint控制這些路徑的時(shí)延. 10 如何在ise 中看到pad to pad 的布線情況?答:通常不必在意信號(hào)在fpga內(nèi)的路線, 只要它涉及到時(shí)序問題. 這種工具將對(duì)以優(yōu)化的方式對(duì)設(shè)計(jì)進(jìn)行路由. 如果希望檢查具體路由, 可以使用xilinx fpga editor, 它包含在ise4. 2i軟件中. 11 在xilinx foundation 3. 1i下用jtag programer下載程序到芯片中, 可是總是出現(xiàn)如下錯(cuò)誤:if the security flag is turned on i

12、n the bitstream, programming status can not be confirmed;others, programming terminated due to error. 測(cè)量電路信號(hào), 沒有相應(yīng)的波形, 顯然下載沒有成功. 所用的芯片是:xilinx spartan2 xc2s50tq144. 怎么解決? 答:this is a security feature. by disabling readback, the configuration data cannot be read back from the fpga. this prevents othe

13、rs from pirating your intellectual properties. you can enable or disable this feature during bitstream generation. the proper way to determine if the configuration is finished without error is to check the status of the done pin on the fpga. done pin should goes high if the bitstream is received cor

14、rectly. also, since you are using jtag configuration, please make sure you have selected jtag clock (not cclk) as your startup clock during bitstream generation. (參考譯文:這是保密功能. 通過(guò)禁用回讀, 配置數(shù)據(jù)不能從fpga回讀. 這可以防止其他人盜用你的成果. 在生成位元流過(guò)程中, 可以啟用或禁用這個(gè)功能. 確定配置是否準(zhǔn)確無(wú)誤地完成, 適合的方法就是檢查fpga上done引腳的狀態(tài). 如果正確地接收了位元流, 則done引腳將

15、會(huì)升高. 而且, 既然使用jfag配置, 就要確保在生成位元流過(guò)程中, 已經(jīng)將jgag時(shí)鐘(而不是cclk)選作了startup時(shí)鐘. )12 xilinx virtex架構(gòu)中每個(gè)對(duì)照表(lut)都能夠設(shè)置成為具有可編程深度(最多為16)的移位寄存器. 可否理解為, 在寫設(shè)計(jì)的時(shí)候如果設(shè)計(jì)了一個(gè)深度不大于16位的移位寄存器, ise綜合時(shí)就會(huì)用一個(gè)lut來(lái)替代它? 答:most synthesis tools (e. g. synplify pro, xilinx xst) are able to infer lut based shift register (srl16e) from you

16、r source code. even for depth greater than 16, the tool is smart enough to infer multiple srl16e to realize the shift register. another way to utilize this feature is to instantiate an srl16e in the source code. you can refer to the library guide in the xilinx ise software package for more details.

17、(參考譯文:大多數(shù)綜合工具, 例如synplify pro和xilinx xst, 都能根據(jù)源代碼中的移位寄存器srl16e來(lái)推斷 lut. 即使是深度大于16的情況, 此類工具也能夠推斷出多srl16e, 從而實(shí)現(xiàn)移位寄存器. 利用此功能的另一種途徑是在原代碼中例示一個(gè)srl16e. 詳細(xì)說(shuō)明可以參考xilinx ise軟件包中的庫(kù)指南. )13 lut是實(shí)現(xiàn)組合邏輯的sram, 怎樣實(shí)現(xiàn)一個(gè)時(shí)序的移位寄存器, 是不是必須加一個(gè)觸發(fā)器來(lái)配合lut? 答:the luts in xilinx virtex architecture are not simply combinational lo

18、gic. when it is configured as 16x1 ram, the write operation is synchronous. when it is configured as shift register, there is no need to consume any flip-flop resource. in fact the internal circuitry of a virtex lut is more complicated than what it looks like. (參考譯文:xilinx virtex結(jié)構(gòu)中的lut不是簡(jiǎn)單的組合邏輯。當(dāng)它被

19、配置為16x1 ram時(shí),寫操作是同步的。當(dāng)它被配置為移位寄存器時(shí),則無(wú)需消耗任何flip-flop資源。事實(shí)上virtex lut的內(nèi)部電路比看起來(lái)更復(fù)雜。)14 在foundation 3.1環(huán)境里怎么找不到啟動(dòng)testbench.vhd的程式? 答:伴隨foundation 3.1i出現(xiàn)的仿真器為門極仿真器, 因此你不能在這種設(shè)計(jì)環(huán)境下以vhdl級(jí)運(yùn)行仿真. vhdl代碼必須在你運(yùn)行任何仿真之前進(jìn)行綜合. 因此, 在foundation 3.1i環(huán)境下并不能使用vhdl testbench. 作為替代方式, 你可以編寫仿真script. 實(shí)際上, foundation 3.1i是一款相對(duì)

20、較老的軟件. xilinx ise軟件中支持hdl testbench, 它的最新版本為4.2i. 15 關(guān)于雙向口的仿真, 如果雙向口用作輸入口, 輸出口該怎么設(shè)置?答:做仿真時(shí), 軟件會(huì)自動(dòng)地將io口(包括雙向口)的引腳本加入到. scf文件中去. 先新建一個(gè)scf文件, 然后在node-enter nodes from snf-list, 將列出的所有io引腳(包括了雙向口)都加入仿真文件中, 就可以進(jìn)行仿真了. 16 關(guān)于acex1k的i/o腳驅(qū)動(dòng)能力. altera 計(jì)算功耗的datasheet 中:對(duì)acex1k器件, pdcout (power of steady-state o

21、utputs)的計(jì)算就是根據(jù)ioh, iol來(lái)計(jì)算的, 能否告訴我acex1k芯片的ioh, iol分別是多少? 答:關(guān)于acex1k的io驅(qū)動(dòng)能力, ioh&iol的大小可以從acex1k的數(shù)據(jù)手冊(cè)中查到(acex. pdf page 50/86). 17 設(shè)計(jì)中vccio=3. 3v, 假如ioh=20ma, iol=20ma, n=10 (total number of dc output with steady-state outputs), 如何計(jì)算pdcout?答:關(guān)于功耗的計(jì)算可以參照an74(p2)中的功耗計(jì)算公式. 18 當(dāng)vccio=3. 3v時(shí), 對(duì)于輸入腳, 它兼容tt

22、l, cmos電平;對(duì)輸出腳, 它是否也兼容ttl和cmos電平?對(duì)cmos電平, 是否需要用opendrain 加上下拉電阻來(lái)實(shí)現(xiàn)?答:acex1k器件引腳兼容ttl與cmos電平. coms輸出是否要加上拉電阻要看外部接的cmos電平, 假如說(shuō)接5v coms則需要上拉. 詳細(xì)情況可以參照an117. 19 將epc2與epf10k30a連接成jtag菊花鏈的形式, 在調(diào)試階段可以跳過(guò)epc2直接配置epf10k30a, 而在配置通過(guò)驗(yàn)證以后再利用epc2的jtag口將epf10k30a的配置信息固化到epc2中去. epc2的專用配置端與epf10k30a配置端連接, 當(dāng)系統(tǒng)脫離jtag

23、電纜上電配置時(shí), 由epc2完成對(duì)epf10k30a的配置. 這個(gè)過(guò)程中有一個(gè)疑問, epf10k30a相當(dāng)于有兩個(gè)配置通道(一個(gè)通過(guò)jtag, 一個(gè)通過(guò)epc2), 當(dāng)其中一個(gè)配置通道工作時(shí), 另外一個(gè)配置通道的存在是否會(huì)影響到配置過(guò)程的正常進(jìn)行呢?如果相互影響, 怎樣才能做到兩種方式同時(shí)存在又互不影響呢?答:可以使10k30a擁有兩個(gè)不同的下載方式, 在板子上做一個(gè)跳線開關(guān)即可. 也可以從當(dāng)?shù)氐拇淼玫皆撃K的參考設(shè)計(jì). 20 altera是建議直接使用maxplusii或quartus編譯hdl源代碼, 還是使用第三方eda工具(如synplify、leoanrdospectrum或sy

24、nopsys)先把hdl源代碼編譯為edf文件后再使用altera的工具編譯?答:altera建議用第三方的工具將hdl源代碼編譯為edf文件后再使用altera的工具進(jìn)行布局布線. altera的maxplusii和quartus也都自帶有hdl的綜合器, 一些簡(jiǎn)單的設(shè)計(jì)可以直接在mp2或qii中編譯即可. 而且可以直接在軟件中后臺(tái)調(diào)用第三方的eda工具. 21 用maxplusii或quartus多次編譯同一設(shè)計(jì)生成的帶延時(shí)的網(wǎng)表文件中的延時(shí)是否一樣?答:用mp2或qii多次編譯同一設(shè)計(jì)成的帶延時(shí)的網(wǎng)表文件中的延時(shí)是一樣, 但要保證該網(wǎng)表文件沒有修改過(guò). 22 在編譯前設(shè)定一個(gè)模塊的syn

25、thesis style為fast是否一定比不設(shè)定(none)要節(jié)省lc資源?答:在布局布線的過(guò)程中, synthesis style的設(shè)置會(huì)影響到資源的利用率和速度的快慢, 一般情況下:設(shè)置為fast主要是為了提高設(shè)計(jì)的速度. 在軟件中除了綜合類型的設(shè)置, 還有一項(xiàng)是選擇優(yōu)化的目的:optimize-area or speed. 選擇area可以節(jié)省設(shè)計(jì)所占用的資源. 23 altera公司對(duì)芯片熱設(shè)計(jì)有哪些資料和工具? 答:altera提供了許多計(jì)算功耗的資料和工具. 數(shù)據(jù)手冊(cè)中的an74就是關(guān)與計(jì)算altera器件功耗的專門文檔. 24 如何在設(shè)計(jì)前期分析芯片的功耗?計(jì)算功耗的工具: a

26、ltera提供的quartus軟件就有計(jì)算功耗的功能, 它可以根據(jù)你不同的激勵(lì)項(xiàng)量來(lái)計(jì)算功耗; 在altera 的網(wǎng)葉上就有專門計(jì)算功耗的運(yùn)算器, 請(qǐng)點(diǎn)擊相關(guān)文章 它就給出了apexii的功耗計(jì)算方法. 25 看過(guò)“flex pci development board”的參考設(shè)計(jì)原理圖, 它利用了條線開關(guān)選擇配置方式. 既然兩種配置方式管腳并沒有公用, 為何需要這個(gè)跳線開關(guān)呢?答:epc2不會(huì)影響到用下載電纜通過(guò)jtag口配置epf10k30a. 使用跳線開關(guān)是在選擇給10k30a下載的方式, 是通過(guò)下載電纜還是epc2. 因?yàn)閷cp2與10k30a連接成jtag菊花鏈的形式通過(guò)下載電纜下載

27、和用epc2對(duì)10k30a下載的連接方式是不同的, 所以要將這兩者分開, 詳細(xì)的連接方法應(yīng)該在參考設(shè)計(jì)原理圖中已經(jīng)描繪的很清楚了. 26 為了保證設(shè)計(jì)可靠性, 需要重點(diǎn)關(guān)注哪些方面? 答:here are a few guidelines for reliable fpga design(關(guān)于可靠性fpga設(shè)計(jì)的幾點(diǎn)建議) use fully synchronous design. asynchronous design is very sensitive to path delay and is therefore not robust. an example of asychronous

28、circuit is the sr latch which uses combinational feedback. (使用完全同步設(shè)計(jì). 異步設(shè)計(jì)對(duì)路徑延遲非常敏感, 因此不很可靠. 異步電路的一個(gè)例子是使用組合反饋的sr閉鎖. ) never gate your clock signal with combinational logic. glitches may occur on any gated clock signals, which results in false triggering of flip-flops. (絕不使用組合邏輯控制時(shí)鐘信號(hào). 因?yàn)樵谌魏伍T控制時(shí)鐘信號(hào)上可

29、能產(chǎn)生短時(shí)脈沖干擾, 最終導(dǎo)致錯(cuò)誤觸發(fā)flip-flop. ) never rely on gate delay. (絕不要依靠門延遲. ) enough bypass capacitors should be placed close to the power and ground pins of fpga. use capacitors with good high frequency response. (fpga的電源和接地引腳附近應(yīng)該放置足夠多的旁路電容器. 使用優(yōu)質(zhì)高頻響應(yīng)電容器. ) always use the global clock buffers on the fpga

30、to drive internal clock signals. these clock buffers and the associated clock distribution network have been carefully designed to minimize skew. (在fpga上始終使用全局時(shí)鐘緩沖來(lái)驅(qū)動(dòng)內(nèi)部時(shí)鐘信號(hào). 并且已經(jīng)仔細(xì)設(shè)計(jì)了這些時(shí)鐘緩沖和關(guān)聯(lián)時(shí)鐘配電網(wǎng), 以將畸變減至最小. )27 you said an example of asychronous circuit is the sr latch which uses combinational fee

31、dback. how do i learn sr latch ? what is the difference between sr latch and srff? (“異步電路的一個(gè)例子是使用組合反饋的sr閉鎖”. 請(qǐng)問如何理解sr閉鎖?sr閉鎖與srff有什么區(qū)別?)答:a latch changes states whenever the gate signal is active. a ff changes states only at clock edges. (參考譯文:只要門信號(hào)是活動(dòng)的, 閉鎖就會(huì)更改狀態(tài). 而ff只有在時(shí)鐘邊沿才更改狀態(tài). )28 xilinx公司的芯片在熱設(shè)

32、計(jì)方面可以提供哪些工具和資料?答:for thermal consideration, you need to know the power consumption of your fpga and the thermal resistivity of the device package you are using. the power consumption can be estimated by the xpower tool included in xilinx ise software. the thermal resistivity of the device package ca

33、n be found in xilinx databook. the junction temperature can then be calculated by the following formula(至于散熱問題, 需要了解所用fpga的功耗和正在使用的器件封裝的熱阻系數(shù). xilinx ise軟件中所包含的xpower工具可以估計(jì)功耗. 在xilinx數(shù)據(jù)手冊(cè)中可以找到器件封裝的熱阻系數(shù). 然后利用下面的公式計(jì)算接合溫度. )p = (tj - ta) / thetaja 其中, p=功耗;tj=接合溫度;ta=環(huán)境溫度;thetaja = 封裝的熱阻系數(shù)you can then d

34、etemine if the junction temperature falls within the acceptable region. the maximum acceptable junction temperature is different for c and i grade devices. if it is higher than the max. acceptable temperature, you may consider adding a heatsink or cooling fan. (之后確定接合溫度是否在允許范圍內(nèi). c和i級(jí)器件允許的最高接合溫度不同. 如

35、果溫度高于允許的最高值, 可能需要增加散熱片或風(fēng)扇. )29 如果時(shí)鐘進(jìn)入fpga后經(jīng)過(guò)一段組合邏輯才上時(shí)鐘網(wǎng)絡(luò), 會(huì)存在一定的延時(shí). 綜合布線后會(huì)出現(xiàn)信號(hào)輸入延時(shí)為負(fù)值, 意味著信號(hào)比時(shí)鐘先到達(dá)觸發(fā)器. 那么, 怎樣通過(guò)約束文件增加輸入信號(hào)的延時(shí)呢?我試過(guò)對(duì)net加上meddelay的約束, 但是沒效果. 答:gating the clock signal with combinational logic is not recommended in modern high speed digital design since it may creates glitches on the ga

36、ted clock signal, which results in false triggering of flip-flops. this results in a less reliable design. a common technique to remove gated clock is to make use of the clock enable pin of the flip-flop. for example, if you have a signal clko = clki & a & b driving the clock pin of a flip-flop, you

37、 can eliminate the gated clock by feeding clki directly to the ff clock pin, and have another signal en = a & b connected to the clock enable pin of the ff. ( 參考譯文:在現(xiàn)代高速數(shù)字設(shè)計(jì)當(dāng)中, 不建議使用組合邏輯門控時(shí)鐘信號(hào), 因?yàn)檫@將會(huì)在選通的時(shí)鐘信號(hào)上產(chǎn)生短時(shí)脈沖波形干擾, 導(dǎo)致錯(cuò)誤觸發(fā)flip-flop. 這是缺乏可靠性的設(shè)計(jì). 移除門控時(shí)鐘通常所采用的技巧是使用flip-flop的時(shí)鐘使能引腳. 例如, 如果有一個(gè)信號(hào)clko

38、= clki & a & b 正在驅(qū)動(dòng)flip-flop的時(shí)鐘引腳, 則可以通過(guò)直接將clki傳遞給ff時(shí)鐘引腳, 并將另一個(gè)信號(hào)en = a & b與ff的時(shí)鐘使能引腳連接, 來(lái)消除門控時(shí)鐘. )by removing the gated clock, you no longer have the problem of clock delay. also the design is more robust. (移除門控時(shí)鐘后, 就不再有時(shí)鐘延遲的問題了. 而且這種設(shè)計(jì)也比較可靠. )30 fpga生產(chǎn)產(chǎn)商提供了ip, 如何用第三方軟件, 如advantage 或 active vhdl, 調(diào)

39、用并進(jìn)行仿真?答:the ips provided by xilinx, e. g. pci, come with simulation models which can be processed by 3rd part simulation tools like modelsim. so there is no problem for functional simulation. timing simulation can be done by exporting the post-layout vhdl/verilog model from xilinx ise software. in

40、some cases, sample testbenches are also included. (參考譯文:xilinx提供的ip, 例如pci, 是與仿真模型一同提供的, 這種模型可由第三方仿真工具, 如modelsim來(lái)處理. 因此對(duì)功能仿真來(lái)說(shuō), 沒有問題. 通過(guò)從xilinx ise軟件中導(dǎo)出post-layout vhdl/verilog可以執(zhí)行定時(shí)仿真. 在某些情況下, 也包括樣本測(cè)試平臺(tái). )31 “as a good design practice, never use gate delay to implement your delay logic under all c

41、ircumstances”. please tell me what does gate delay(閘) mean?(“一個(gè)好的設(shè)計(jì), 在所有情況下都決不會(huì)使用門延遲來(lái)實(shí)現(xiàn)延遲邏輯. ”此處“門延遲”是什么意思?)答: “by gate delay i mean using a series of logic gates to introduce certain amount of delay in the design. this is highly undesirable since gate delay changes with factors like temperature and

42、 process technology. the design may fail as temperature changes or using a different version silicon. also designs relying on gate delay are not portable, meaning that you need to re-design the whole circuit whenever you want to change to another product series or part number, simply because the gat

43、e delay changes as well. (參考譯文:“門延遲”指得是使用一系列邏輯門將一定數(shù)量的延遲導(dǎo)入到設(shè)計(jì)中. 既然門延遲更改像溫度和處理技術(shù)這樣的因素, 所以, 這是很不合適的. 由于溫度的改變或使用不同版本的芯片, 設(shè)計(jì)可能會(huì)失敗. 依賴門延遲的設(shè)計(jì)也不是可移植的, 也就是說(shuō), 要更改另一產(chǎn)品系列或部件號(hào)時(shí), 需要重新設(shè)計(jì)整個(gè)電路, 只因?yàn)楦牧碎T延遲. ) always use fully synchronous design. you never need to reply on gate delay if your design is fully synchronous

44、. (始終使用完全同步設(shè)計(jì). 如果設(shè)計(jì)是全同步的, 則無(wú)需回應(yīng)門延遲. )32 this time i download another program to another chip spartanii xc2s50pq208 in another circuit, while it fails, and show the following message: . . . checking boundary-scan chain integrity. . . error:jtag - boundary-scan chain test failed at bit position 3 on i

45、nstance *(a substitute for the real name of file). a problem may exist in the hardware configuration. check that the cable, scan chain, and power connections are intact, that the specified scan chain configuration matches the actual hardware, and that the power supply is adequate and delivering the

46、correct voltage. error:jtag - boundary scan chain has been improperly specified. please check your configuration and re-enter the boundary-scan chain information. boundary-scan chain validated unsuccessfully. error:jtag - : the boundary-scan chain has not been declared correctly. verify the syntax a

47、nd correctness of the device bsdl files, correct the files, reset the cable and retry this command. with so many messages, i dont know what to do! i try many times but only fail, and doubt whether there is something wrong with the circuit?but the powers checked in circuit are right. would you please

48、 give me some advice to crack the problem?(有一次, 將程序下載至spartanii xc2s50pq208芯片電路, 結(jié)果發(fā)生了故障, 并顯示以下消息:“. . . checking boundary-scan chain integrity. . . error:jtag - boundary-scan chain test failed at bit position 3 on instance *(實(shí)際的文件名)”. 問題可能在硬件配置. 檢查了連線、掃描鏈路和電源接頭都沒有問題. 特定的掃描鏈路配置與實(shí)際的硬件相匹配, 電源充足且電壓正常.

49、“error:jtag - boundary scan chain has been improperly specified. please check your configuration and re-enter the boundary-scan chain information. boundary-scan chain validated unsuccessfully. error:jtag - : the boundary-scan chain has not been declared correctly. verify the syntax and correctness o

50、f the device bsdl files, correct the files, reset the cable and retry this command. ”這么多出錯(cuò)消息, 什么原因, 怎么辦?)答:usually it is the result of a broken jtag chain or noisy chain. most commonly, the cable is not connected properly, a trace is not correct on the board, other devices in the chain are causing a

51、 problem, or a noisy parallel port exists. try using a different pc. you can also add a 4. 7k pullup on the prog pin of the fpga and see if it helps. (通常, 這是由于中斷的jtag鏈或噪聲鏈. 最常見的原因是, 連線不正確, 板子上的跡線不正確, 鏈路中的其它器件導(dǎo)致問題, 或者存在噪聲并口. 試一下使用不同的pc. 也可以在fpga的prog引腳上增加一個(gè)4. 7k的上拉電阻, 看看是否有幫助. )33 在vhdl中, 定義為signal的量

52、起到什么作用?什么時(shí)候需要定義這個(gè)量?下面的程序architecture exer2_arch of exercise2 issignal tem: std_logic;begintem=pin50 and pin51;pin8 =tem;end exer2_arch;和如下的程序有何區(qū)別?architecture exer2_arch of exercise2 isbeginpin8from a simulations perspective, there is a fundamental difference between signal and variable in vhdl. a v

53、ariable is nothing more than an object that holds a value. a variable assignment occurs instantly in a vhdl simulation. also, a variable can only exist within a process, so it cannot transfer values across processes. a signal, on the other hand, has a history of values. whenever a signal assignment

54、occurs, the vhdl simulator schedules an event to update the signal value after a certain period of simulation time - the signal does not get this new value instantly in the simulation time domain. also, a signal can exists outside processes. sounds complicated, but for most of the time you can simpl

55、y use vhdl signal in your hardware design. (參考譯文:如果在端口表中聲明了pin8, 這兩個(gè)示例是一樣的. 從硬件設(shè)計(jì)的角度看, 可以將vhdl signal視為電子信號(hào). 因此, 基本上可以將每個(gè)對(duì)象聲明為“signal”. 從仿真角度看, vhdl中的signal 與 variable是根本不同的. 變量只不過(guò)是擁有值的對(duì)象. 變量分配即時(shí)出現(xiàn)在vhdl仿真中. 而且, 變量只能存在于一個(gè)過(guò)程內(nèi), 因此它不能通過(guò)過(guò)程來(lái)傳遞值. 另一方面, 信號(hào)有多個(gè)值. 不論何時(shí)分配信號(hào), vhdl仿真都會(huì)在某個(gè)仿真時(shí)段安排一個(gè)事件來(lái)更新信號(hào)的值. 在仿真時(shí)域里

56、, 信號(hào)不會(huì)立即獲得這個(gè)新的值. 而且信號(hào)可以存在于過(guò)程之外. 聽起來(lái)好象有點(diǎn)復(fù)雜, 但大多數(shù)時(shí)候, 在硬件設(shè)計(jì)中可以只使用vhdl 信號(hào). )34 如果輸入時(shí)鐘必須經(jīng)過(guò)一段組合邏輯(比如需要進(jìn)行時(shí)鐘選擇, 可選外部或內(nèi)部時(shí)鐘), 那么在dff使能端加控制是無(wú)法解決的, 有什么更好的方法?答:a simple answer is to use the bufgmux resource in xilinx virtexii devices. the bufgmux is actually a global clock buffer in virtexii which incoporates a

57、smart mux to switch between 2 clock sources. more importantly, the bufgmux guarantees glitch-free switching between these 2 clocks, even though the select signal changes asynchronously. (參考譯文:簡(jiǎn)單的方法是使用xilinx virtexii器件上的bufgmux資源. bufgmux實(shí)際上是virtexii中的全局時(shí)鐘緩沖, virtexii將智能mux與2個(gè)時(shí)鐘源之間的切換相結(jié)合. 更為重要的是, 即使選擇信號(hào)更改不同步, bufgmux也能保證這兩個(gè)時(shí)鐘之間的無(wú)干擾切換. ) 35 用altera器件設(shè)計(jì)一個(gè)電路, 外掛一同步存儲(chǔ)器件. 邏輯設(shè)計(jì)和存儲(chǔ)器件的時(shí)鐘是相同的, 但由于時(shí)鐘信號(hào)帶負(fù)載能力較差, 只能接一個(gè)負(fù)載, 所以將時(shí)鐘信號(hào)接在可編程

溫馨提示

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

評(píng)論

0/150

提交評(píng)論