色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 可編程邏輯器件設(shè)計技巧

          可編程邏輯器件設(shè)計技巧

          作者: 時間:2017-06-06 來源:網(wǎng)絡(luò) 收藏
          1. 用Altera_Cpld作了一個186(主CPU)控制sdram的控制接口, 發(fā)現(xiàn)問題:要使得sdram讀寫正確, 必須把186(主CPU)的clk送給sdram, 而不能把clk經(jīng)cpld的延時送給sdram. 兩者相差僅僅4ns. 而時序通過邏輯分析儀測試沒有問題. 此程序在xilinx器件上沒有問題. 這是怎么回事?

          答:建議將所有控制和時鐘信號都從輸出, 因為SDRAM對時鐘偏移(clock skew)很敏感, 而Altera的器件PLL允許對時鐘頻率和相位都進行完全控制. 因此, 對于所有使用SDRAM的設(shè)計, Altera的器件PLL必須生成SDRAM時鐘信號.

          要利用SDRAM作為數(shù)據(jù)或程序存儲地址來完成設(shè)計, 是采用MegaWizard還是Plug-In Manager來將一個PLL在采用Quartus II軟件的設(shè)計中的頂層示例?可以選擇創(chuàng)建一個新的megafuntion變量, 然后在Plug-In manager中創(chuàng)建ALTCLKLOCK(I/P菜單)變量. 可以將PLL設(shè)置成多個, 或是將輸入劃分開來, 以適應(yīng)設(shè)計需求. 一旦軟件生成PLL, 將其在設(shè)計中示例, 并使用PLL的“Clock”輸出以驅(qū)動CPU時鐘輸入和輸出IP引腳.

          2. 在max7000系列中, 只允許有兩個輸出使能信號, 可在設(shè)計中卻存在三個, 每次編譯時出現(xiàn)“device need too many [3/2] output enable signal”. 如果不更換器件(使用的是max7064lc68). 如何解決這個問題?

          答: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 output 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. (參考譯文:這兩個獨特的輸出使能中每個都可能控制大量三相信號. 例如, 可能有16個雙向I/O引腳. 每個引腳需要一個輸出使能信號. 如果將這些信號一起分組到一個16位總線, 就可以使用一個輸出使能控制所有信號, 而不用每個信號一個輸出使能. )

          3. 關(guān)于vhdl的問題:process(a, b, c) begin… end process; 如果a、b、c同時改變, 該進程是否同時執(zhí)行三次?

          答:PROCESS STATEMENTS 中的執(zhí)行跟邏輯有關(guān)系, 假如是同步邏輯, 則在每次時鐘的觸發(fā)沿根據(jù)A, B, C的條件來執(zhí)行一次;假如是異步邏輯, 則根據(jù)判斷A、B、C的條件來執(zhí)行. 一般我們都推薦使用同步邏輯設(shè)計

          4. 在設(shè)計最初, 由于沒有將時鐘信號定義在全局時鐘引腳上, 導(dǎo)致MAXPLUS II 在時間分析時提示錯誤:(時鐘偏斜加上信號延遲時間超過輸入信號建立時間). 全局時鐘引腳的時鐘信號到各個觸發(fā)器的延時最小, 有沒有可能通過編譯軟件設(shè)置, 將普通I/O腳上的時鐘信號也經(jīng)過芯片內(nèi)部的快速通道以最小的延遲送到每個觸發(fā)器時鐘引腳?

          答: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 you'd better input the clock signal through the dedicated input pin. (參考譯文:可以寄存這個信號, 并將它指定為全局信號, 步驟如下:指定—>邏輯選項—>個別邏輯選項—>全局信號. 但是, 最好通過專用輸入引腳輸入時鐘信號. )

          5. 用MaxplusII 軟件設(shè)計完后, 用Delay Matrix查看延遲時間. 由于內(nèi)部觸發(fā)器的時鐘信號用了一個輸出引腳的信號, 譬如將一引腳ClkOut定義為Buffer, Clkout是一時鐘信號, 然后反饋到內(nèi)部邏輯, 內(nèi)部邏輯用此信號作為時鐘信號, 但用Delay Matrix, 卻查看不到一些信號相應(yīng)于ClkOut的延遲, 因為ClkOut是一Output引腳, 在Delay Matrix source 一欄中沒有ClkOut信號, 如何解決這個問題?

          答:這種做法在邏輯設(shè)計中稱為GATE CLOCK, 所謂GATE CLOCK就是將設(shè)計中的組合邏輯結(jié)果拿來做時鐘信號, 這是一種異步邏輯設(shè)計.

          現(xiàn)在都推薦使用同步邏輯設(shè)計方法. 可以將該信號(CLKOUT)拿來作使能信號, 即ENABLE信號, 而時鐘信號還是采用原來的統(tǒng)一時鐘, 使設(shè)計用盡量少的同步時鐘, 這樣一來就還是用DELAY MATRIX來分析原有的時鐘.

          6. 我是一個epld的初學(xué)者, 目前看到xilinx的Virtex-II中嵌入大量的資源如:powerpc、ram等, 究竟如何在fpga中使用這些資源?

          答:Xilinx Virtex-II中嵌入的資源非常豐富, 如BlockRAM、Digital Clock Manager、On-chip termination等等. ISE 4.2i軟件完全支持這些資源. 可以舉出單元庫中相應(yīng)基本數(shù)據(jù)的實例. Xilinx Core Generator中也還支持BlockRAM等特性. 至于PowerPC和MGT設(shè)計, 可以使用Virtex-II Pro開發(fā)者套件.

          7. 在設(shè)計中, 往往需要對某個信號做一定(任意長)的延時, 有沒有好的方法來實現(xiàn)?而不是采用類似移位寄存器的方法來延時.

          答:使用移位寄存器在中對信號進行延時是一種好方法. Xilinx Virtex架構(gòu)中每個對照表(LUT)都能夠設(shè)置成為具有可編程深度(最多為16)的移位寄存器. 這就提供了一種高效的途徑來在中實現(xiàn)移位寄存器. 無須使用觸發(fā)器就可以實現(xiàn)一個16位寄存器. 作為一個好的設(shè)計習(xí)慣, 任何情況下都不要通過閘延遲來實現(xiàn)延遲邏輯.

          8. ISE中的PAD TO PAD CONSTRAINT 是否是包括輸入輸出的pad時延之和再加上輸入輸出之間的組合邏輯的時延?還是只是輸入輸出之間的組合邏輯的時延?

          答:Xilinx PAD-to-PAD contraint的確涉及到輸入輸出PAD時延. 這從布局后時序報告中可以看出.

          9. 由于現(xiàn)在的設(shè)計基本上都是同步設(shè)計, 那么PAD TO PAD CONSTRAINT 在什么情況下使用?

          答:雖然現(xiàn)今多數(shù)設(shè)計都是完全同步, 但仍有一些情況需要從一個輸入引腳到另一個輸出引腳的純粹組合路徑. 因此, 仍然需要PAD-to-PAD constraint控制這些路徑的時延.

          10. 如何在ISE 中看到PAD TO PAD 的布線情況?

          答:通常不必在意信號在內(nèi)的路線, 只要它涉及到時序問題. 這種工具將對以優(yōu)化的方式對設(shè)計進行路由. 如果希望檢查具體路由, 可以使用Xilinx FPGA Editor, 它包含在ISE4. 2i軟件中.

          11. 在Xilinx Foundation 3. 1i下用JTAG PROGRAMER下載程序到芯片中, 可是總是出現(xiàn)如下錯誤:If the security flag is turned on in the bitstream, programming status can not be confirmed;others, programming terminated due to error. 測量電路信號, 沒有相應(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 others 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 correctly. Also, since you are using JTAG configuration, please make sure you have selected JTAG clock (not CClk) as your Startup clock during bitstream generation. (參考譯文:這是保密功能. 通過禁用回讀, 配置數(shù)據(jù)不能從FPGA回讀. 這可以防止其他人盜用你的成果. 在生成位元流過程中, 可以啟用或禁用這個功能.

          確定配置是否準確無誤地完成, 適合的方法就是檢查FPGA上DONE引腳的狀態(tài). 如果正確地接收了位元流, 則DONE引腳將會升高. 而且, 既然使用JFAG配置, 就要確保在生成位元流過程中, 已經(jīng)將JGAG時鐘(而不是CClk)選作了Startup時鐘. )

          12. Xilinx Virtex架構(gòu)中每個對照表(LUT)都能夠設(shè)置成為具有可編程深度(最多為16)的移位寄存器. 可否理解為, 在寫設(shè)計的時候如果設(shè)計了一個深度不大于16位的移位寄存器, ISE綜合時就會用一個LUT來替代它?

          答:Most synthesis tools (e. g. Synplify Pro, Xilinx XST) are able to infer LUT based shift register (SRL16E) from your 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. (參考譯文:大多數(shù)綜合工具, 例如Synplify Pro和Xilinx XST, 都能根據(jù)源代碼中的移位寄存器SRL16E來推斷 LUT. 即使是深度大于16的情況, 此類工具也能夠推斷出多SRL16E, 從而實現(xiàn)移位寄存器. 利用此功能的另一種途徑是在原代碼中例示一個SRL16E. 詳細說明可以參考Xilinx ISE軟件包中的庫指南. )

          本文引用地址:http://cafeforensic.com/article/201706/349477.htm
          13. LUT是實現(xiàn)組合邏輯的SRAM, 怎樣實現(xiàn)一個時序的移位寄存器, 是不是必須加一個觸發(fā)器來配合LUT?

          答:The LUTs in Xilinx Virtex architecture are not simply combinational logic. 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不是簡單的組合邏輯。當(dāng)它被配置為16x1 RAM時,寫操作是同步的。當(dāng)它被配置為移位寄存器時,則無需消耗任何flip-flop資源。事實上Virtex LUT的內(nèi)部電路比看起來更復(fù)雜。)

          14. 在foundation 3.1環(huán)境里怎么找不到啟動testbench.vhd的程式?

          答:伴隨Foundation 3.1i出現(xiàn)的仿真器為門極仿真器, 因此你不能在這種設(shè)計環(huán)境下以VHDL級運行仿真. vhdl代碼必須在你運行任何仿真之前進行綜合. 因此, 在Foundation 3.1i環(huán)境下并不能使用vhdl testbench. 作為替代方式, 你可以編寫仿真script.

          實際上, Foundation 3.1i是一款相對較老的軟件. Xilinx ISE軟件中支持HDL testbench, 它的最新版本為4.2i.

          15. 關(guān)于雙向口的仿真, 如果雙向口用作輸入口, 輸出口該怎么設(shè)置?

          答:做仿真時, 軟件會自動地將IO口(包括雙向口)的引腳本加入到. SCF文件中去. 先新建一個SCF文件, 然后在NODE->ENTER NODES FROM SNF->LIST, 將列出的所有IO引腳(包括了雙向口)都加入仿真文件中, 就可以進行仿真了.

          16. 關(guān)于ACEX1K的I/O腳驅(qū)動能力. ALTERA 計算功耗的datasheet 中:對ACEX1K器件, PDCOUT (power of steady-state outputs)的計算就是根據(jù)IOH, IOL來計算的, 能否告訴我ACEX1K芯片的IOH, IOL分別是多少?

          答:關(guān)于ACEX1K的IO驅(qū)動能力, IOHIOL的大小可以從ACEX1K的數(shù)據(jù)手冊中查到(ACEX. PDF PAGE 50/86).

          17. 設(shè)計中Vccio=3. 3V, 假如IOH=20mA, IOL=20mA, n=10 (Total number of DC output with steady-state outputs), 如何計算PDCOUT?

          答:關(guān)于功耗的計算可以參照AN74(P2)中的功耗計算公式.

          18. 當(dāng)Vccio=3. 3V時, 對于輸入腳, 它兼容TTL, CMOS電平;對輸出腳, 它是否也兼容TTL和CMOS電平?對CMOS電平, 是否需要用OpenDrain 加上下拉電阻來實現(xiàn)?

          答:ACEX1K器件引腳兼容TTL與CMOS電平. COMS輸出是否要加上拉電阻要看外部接的CMOS電平, 假如說接5V COMS則需要上拉. 詳細情況可以參照AN117.

          19. 將EPC2與EPF10K30A連接成JTAG菊花鏈的形式, 在調(diào)試階段可以跳過EPC2直接配置EPF10K30A, 而在配置通過驗證以后再利用EPC2的JTAG口將EPF10K30A的配置信息固化到EPC2中去. EPC2的專用配置端與EPF10K30A配置端連接, 當(dāng)系統(tǒng)脫離JTAG電纜上電配置時, 由EPC2完成對EPF10K30A的配置. 這個過程中有一個疑問, EPF10K30A相當(dāng)于有兩個配置通道(一個通過JTAG, 一個通過EPC2), 當(dāng)其中一個配置通道工作時, 另外一個配置通道的存在是否會影響到配置過程的正常進行呢?如果相互影響, 怎樣才能做到兩種方式同時存在又互不影響呢?

          答:可以使10K30A擁有兩個不同的下載方式, 在板子上做一個跳線開關(guān)即可. 也可以從當(dāng)?shù)氐拇淼玫皆撃K的參考設(shè)計.

          20. ALTERA是建議直接使用MAXPLUSII或QUARTUS編譯HDL源代碼, 還是使用第三方EDA工具(如SYNPLIFY、LeoanrdoSpectrum或SYNOPSYS)先把HDL源代碼編譯為edf文件后再使用ALTERA的工具編譯?

          答:ALTERA建議用第三方的工具將HDL源代碼編譯為edf文件后再使用ALTERA的工具進行布局布線. ALTERA的MAXPLUSII和QUARTUS也都自帶有HDL的綜合器, 一些簡單的設(shè)計可以直接在MP2或QII中編譯即可. 而且可以直接在軟件中后臺調(diào)用第三方的EDA工具.

          21. 用MAXPLUSII或QUARTUS多次編譯同一設(shè)計生成的帶延時的網(wǎng)表文件中的延時是否一樣?

          答:用MP2或QII多次編譯同一設(shè)計成的帶延時的網(wǎng)表文件中的延時是一樣, 但要保證該網(wǎng)表文件沒有修改過.

          22. 在編譯前設(shè)定一個模塊的Synthesis Style為FAST是否一定比不設(shè)定(NONE)要節(jié)省LC資源?

          答:在布局布線的過程中, Synthesis Style的設(shè)置會影響到資源的利用率和速度的快慢, 一般情況下:設(shè)置為FAST主要是為了提高設(shè)計的速度. 在軟件中除了綜合類型的設(shè)置, 還有一項是選擇優(yōu)化的目的:oPTIMIZE->AREA OR SPEED. 選擇AREA可以節(jié)省設(shè)計所占用的資源.

          23. Altera公司對芯片熱設(shè)計有哪些資料和工具?

          答:ALTERA提供了許多計算功耗的資料和工具. 數(shù)據(jù)手冊中的AN74就是關(guān)與計算ALTERA器件功耗的專門文檔.

          24. 如何在設(shè)計前期分析芯片的功耗?

          計算功耗的工具: ALTERA提供的QUARTUS軟件就有計算功耗的功能, 它可以根據(jù)你不同的激勵項量來計算功耗; 在ALTERA 的網(wǎng)葉上就有專門計算功耗的運算器, 請點擊相關(guān)文章 它就給出了APEXII的功耗計算方法.

          25. 看過“FLEX PCI Development Board”的參考設(shè)計原理圖, 它利用了條線開關(guān)選擇配置方式. 既然兩種配置方式管腳并沒有公用, 為何需要這個跳線開關(guān)呢?

          答:EPC2不會影響到用下載電纜通過JTAG口配置EPF10K30A. 使用跳線開關(guān)是在選擇給10K30A下載的方式, 是通過下載電纜還是EPC2.

          因為將ECP2與10K30A連接成JTAG菊花鏈的形式通過下載電纜下載和用EPC2對10K30A下載的連接方式是不同的, 所以要將這兩者分開, 詳細的連接方法應(yīng)該在參考設(shè)計原理圖中已經(jīng)描繪的很清楚了.

          26. 為了保證設(shè)計可靠性, 需要重點關(guān)注哪些方面?

          答:Here are a few guidelines for reliable FPGA design(關(guān)于可靠性FPGA設(shè)計的幾點建議)

          ① Use fully synchronous design. Asynchronous design is very sensitive to path delay and is therefore not robust. An example of asychronous circuit is the SR latch which uses combinational feedback. (使用完全同步設(shè)計. 異步設(shè)計對路徑延遲非常敏感, 因此不很可靠. 異步電路的一個例子是使用組合反饋的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. (絕不使用組合邏輯控制時鐘信號. 因為在任何門控制時鐘信號上可能產(chǎn)生短時脈沖干擾, 最終導(dǎo)致錯誤觸發(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 to drive internal clock signals. These clock buffers and the associated clock distribution network have been carefully designed to minimize skew. (在FPGA上始終使用全局時鐘緩沖來驅(qū)動內(nèi)部時鐘信號. 并且已經(jīng)仔細設(shè)計了這些時鐘緩沖和關(guān)聯(lián)時鐘配電網(wǎng), 以將畸變減至最小. )

          27. You said An example of asychronous circuit is the SR latch which uses combinational feedback. How do I learn SR latch ? What is the difference between SR latch and SRFF? (“異步電路的一個例子是使用組合反饋的SR閉鎖”. 請問如何理解SR閉鎖?SR閉鎖與SRFF有什么區(qū)別?)

          答:A latch changes states whenever the gate signal is active. A FF changes states only at clock edges. (參考譯文:只要門信號是活動的, 閉鎖就會更改狀態(tài). 而FF只有在時鐘邊沿才更改狀態(tài). )

          28. Xilinx公司的芯片在熱設(shè)計方面可以提供哪些工具和資料?

          答: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 can be found in Xilinx databook. The junction temperature can then be calculated by the following formula(至于散熱問題, 需要了解所用FPGA的功耗和正在使用的器件封裝的熱阻系數(shù). Xilinx ISE軟件中所包含的Xpower工具可以估計功耗. 在Xilinx數(shù)據(jù)手冊中可以找到器件封裝的熱阻系數(shù). 然后利用下面的公式計算接合溫度. )

          P = (Tj - Ta) / THETAja 其中, P=功耗;Tj=接合溫度;Ta=環(huán)境溫度;THETAja = 封裝的熱阻系數(shù)

          You can then detemine 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級器件允許的最高接合溫度不同. 如果溫度高于允許的最高值, 可能需要增加散熱片或風(fēng)扇. )

          29. 如果時鐘進入FPGA后經(jīng)過一段組合邏輯才上時鐘網(wǎng)絡(luò), 會存在一定的延時. 綜合布線后會出現(xiàn)信號輸入延時為負值, 意味著信號比時鐘先到達觸發(fā)器. 那么, 怎樣通過約束文件增加輸入信號的延時呢?我試過對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 gated 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 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è)計當(dāng)中, 不建議使用組合邏輯門控時鐘信號, 因為這將會在選通的時鐘信號上產(chǎn)生短時脈沖波形干擾, 導(dǎo)致錯誤觸發(fā)flip-flop. 這是缺乏可靠性的設(shè)計. 移除門控時鐘通常所采用的技巧是使用flip-flop的時鐘使能引腳. 例如, 如果有一個信號clko = clki a b 正在驅(qū)動flip-flop的時鐘引腳, 則可以通過直接將clki傳遞給FF時鐘引腳, 并將另一個信號en = a b與FF的時鐘使能引腳連接, 來消除門控時鐘. )

          By removing the gated clock, you no longer have the problem of clock delay. Also the design is more robust. (移除門控時鐘后, 就不再有時鐘延遲的問題了. 而且這種設(shè)計也比較可靠. )

          30. FPGA生產(chǎn)產(chǎn)商提供了IP, 如何用第三方軟件, 如Advantage 或 ACTIVE vhdl, 調(diào)用并進行仿真?

          答: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 some cases, sample testbenches are also included. (參考譯文:Xilinx提供的IP, 例如PCI, 是與仿真模型一同提供的, 這種模型可由第三方仿真工具, 如Modelsim來處理. 因此對功能仿真來說, 沒有問題. 通過從Xilinx ISE軟件中導(dǎo)出post-layout vhdl/verilog可以執(zhí)行定時仿真. 在某些情況下, 也包括樣本測試平臺. )

          31. “As a good design practice, never use gate delay to implement your delay logic under all circumstances”. Please tell me what does gate delay(閘) mean?(“一個好的設(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 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 gate delay changes as well. (參考譯文:“門延遲”指得是使用一系列邏輯門將一定數(shù)量的延遲導(dǎo)入到設(shè)計中. 既然門延遲更改像溫度和處理技術(shù)這樣的因素, 所以, 這是很不合適的. 由于溫度的改變或使用不同版本的芯片, 設(shè)計可能會失敗. 依賴門延遲的設(shè)計也不是可移植的, 也就是說, 要更改另一產(chǎn)品系列或部件號時, 需要重新設(shè)計整個電路, 只因為更改了門延遲. )

          Always use fully synchronous design. You never need to reply on gate delay if your design is fully synchronous. (始終使用完全同步設(shè)計. 如果設(shè)計是全同步的, 則無需回應(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 instance '***'(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 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 and correctness of the device BSDL files, correct the files, reset the cable and retry this command. With so many messages, I don't 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 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 '***'(實際的文件名)”. 問題可能在硬件配置. 檢查了連線、掃描鏈路和電源接頭都沒有問題. 特定的掃描鏈路配置與實際的硬件相匹配, 電源充足且電壓正常. “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 of the device BSDL files, correct the files, reset the cable and retry this command. ”這么多出錯消息, 什么原因, 怎么辦?)

          答: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 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引腳上增加一個4. 7K的上拉電阻, 看看是否有幫助. )

          33. 在VHDL中, 定義為SIGNAL的量起到什么作用?什么時候需要定義這個量?下面的程序

          ARCHITECTURE EXER2_ARCH OF EXERCISE2 IS

          SIGNAL TEM: STD_LOGIC;

          BEGIN

          TEM=PIN50 AND PIN51;

          PIN8 =TEM;

          END EXER2_ARCH;

          和如下的程序有何區(qū)別?

          ARCHITECTURE EXER2_ARCH OF EXERCISE2 IS

          BEGIN

          PIN8=PIN50 AND PIN51;

          END EXER2_ARCH;

          答:If PIN8 is declared in your port list, the 2 examples are identical. From a hardware design's perspective, you can think of a vhdl signal as an electrical signal. So basically you can declare every object as signal. >From a simulation's perspective, there is a fundamental difference between signal and variable in vhdl. A variable 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 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 simply use vhdl signal in your hardware design. (參考譯文:如果在端口表中聲明了PIN8, 這兩個示例是一樣的. 從硬件設(shè)計的角度看, 可以將vhdl signal視為電子信號. 因此, 基本上可以將每個對象聲明為“signal”. 從仿真角度看, vhdl中的signal 與 variable是根本不同的. 變量只不過是擁有值的對象. 變量分配即時出現(xiàn)在vhdl仿真中. 而且, 變量只能存在于一個過程內(nèi), 因此它不能通過過程來傳遞值. 另一方面, 信號有多個值. 不論何時分配信號, vhdl仿真都會在某個仿真時段安排一個事件來更新信號的值. 在仿真時域里, 信號不會立即獲得這個新的值. 而且信號可以存在于過程之外. 聽起來好象有點復(fù)雜, 但大多數(shù)時候, 在硬件設(shè)計中可以只使用vhdl 信號. )

          34. 如果輸入時鐘必須經(jīng)過一段組合邏輯(比如需要進行時鐘選擇, 可選外部或內(nèi)部時鐘), 那么在DFF使能端加控制是無法解決的, 有什么更好的方法?

          答: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 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. (參考譯文:簡單的方法是使用Xilinx VirtexII器件上的BUFGMUX資源. BUFGMUX實際上是VirtexII中的全局時鐘緩沖, VirtexII將智能mux與2個時鐘源之間的切換相結(jié)合. 更為重要的是, 即使選擇信號更改不同步, BUFGMUX也能保證這兩個時鐘之間的無干擾切換. )

          35. 用Altera器件設(shè)計一個電路, 外掛一同步存儲器件. 邏輯設(shè)計和存儲器件的時鐘是相同的, 但由于時鐘信號帶負載能力較差, 只能接一個負載, 所以將時鐘信號接在可編程器件上, 而用內(nèi)部賦值語句將時鐘信號賦值給某一引腳, 此引腳信號再接到存儲器件的時鐘引腳, 但這樣存在一個問題:存儲器件的讀寫信號相對于Altera器件上的時鐘信號有延遲, 存儲器件的時鐘信號相對于Altera器件上的時鐘信號也有延遲, 這樣存儲器件的時鐘信號與讀寫信號之間的時間差難以控制, 極有可能不滿足存儲器件的Setup/hold時間, 有什么好的方法解決此問題?

          答:可以利用ALTERA器件中的PLL來精確控制延時. ALTERA中的PLL是一個真正的模擬鎖相環(huán), 它可以提供精確的時鐘頻率合成與相位延時的細微調(diào)整. 可以將時鐘信號按照你的要求進行延遲調(diào)整.

          假如采用的器件沒有PLL的話, 那么可能需要在邏輯內(nèi)部來做一些延時邏輯, 不過這樣會導(dǎo)致異步邏輯設(shè)計, 我們一般情況下不推薦這樣用. 還有一種辦法就是在PCB板上來調(diào)整時延. 關(guān)于PLL的詳細資料可以參考ALTERA的相關(guān)文檔.

          36. 利用ACEX1K系列片內(nèi)EAB單元創(chuàng)建RAM時, 每創(chuàng)建一個容量較小的RAM時就要占用一個EAB單元, 能否將多個RAM整合由一個EAB實現(xiàn), 以節(jié)約片內(nèi)的EAB單元?

          答:在ACEX1K系列的器件中, 一個EAB單元目前只能做一個應(yīng)用, 我們現(xiàn)在的軟件還不支持將多個小的RAM集成到一個EAB當(dāng)中.

          37. Synthesis Style設(shè)為FAST后, 發(fā)現(xiàn)速度有所提升, 同時使用的資源也減少了, 資源和速度似乎兼得了, 那么是否所有的模塊都可以設(shè)定為FAST呢?

          答:將SYNTHESIS STYLE設(shè)置為FAST主要是為了提高系統(tǒng)性能. 但是有一點要記住的是, 軟件的設(shè)置不是在任何情況下對所有的設(shè)計都表現(xiàn)出相同的結(jié)果. 針對這個設(shè)計模塊, 將SYNTHESIS STYLE設(shè)置為FAST可能對資源和速度都有了優(yōu)化, 但這并不說明對所有的模塊都有相同的效果, 但是可以試一試. 設(shè)計優(yōu)化是一個原則與經(jīng)驗, 技巧相結(jié)合的過程, 我們只掌握一定的原則與方法, 根據(jù)我們自己的經(jīng)驗, 運用一定的技巧, 才能將一個設(shè)計做到最優(yōu)化.

          38. I am now going to design a gray coded 16 bits counter , any efficient way to implement it in VHDL description? (要設(shè)計一個灰色編碼16位的計數(shù)器, 怎么以VHDL描述來實現(xiàn)它?)

          答:You can just use megawizard(lpm_counter) in the software to generate the counter for you, select the output language with VHDL. That should be the efficient way to implement a counter, and you don't to make additional optimize.

          Because the lpm function code is the best way to fit the structure of device, which is designed by altera factory specialist who is very familiar with our device structure. (參考譯文:可以使用軟件里的megawizard(lpm_counter)來生成計數(shù)器, 選擇帶有VHDL的輸出語言. 這應(yīng)該是實現(xiàn)計數(shù)器的有效方法, 而且不用進行額外的優(yōu)化.

          因為lpm功能代碼最適合此設(shè)計結(jié)構(gòu), 這種結(jié)構(gòu)是非常熟悉我們的設(shè)計結(jié)構(gòu)的altera專家設(shè)計的. )

          39. 一般情況下用Synplify Pro綜合后生成的edf文件經(jīng)MP2編譯后與用MP2綜合及編譯相比較, 占用資源較少, 但在使用層次化設(shè)計中, 使用Synplify Pro綜合頂層文件后得到的edf文件經(jīng)MP2編譯后與用MP2綜合及編譯該頂層文件相比較卻大大的占用資源, 請問, 在使用Synplify Pro綜合層次化設(shè)計中如何才能節(jié)省資源?

          答:在使用軟件做優(yōu)化時存在這樣一個平衡關(guān)系: 資源利用率與速度的平衡. 資源利用率提高了, 也就是節(jié)省了資源, 但整個設(shè)計的性能可能會降低了.

          同樣盡力去優(yōu)化系統(tǒng)性能, 提高速度, 那資源的利用也可能會增加. 當(dāng)在使用層次化設(shè)計中, 如何來優(yōu)化整體設(shè)計, 最關(guān)鍵的就是層次與模塊的劃分.

          在劃分層次和模塊是有幾點建議:

          1)以功能來劃分;功能模塊與層次的設(shè)計可以幫助你清楚的定義邊界, 在模塊框圖中, Data paths、tri-state signals、state machines、register blocks、large macrofunctions、memory elements、control blocks和一些重復(fù)使用的模塊都具有其本身的自然邊界.

          2)劃分模塊時要盡量減少模塊間的IO連接, 過多的IO接口會使系統(tǒng)變得復(fù)雜, 軟件需要交叉布線, 降低性能和提高資源利用.

          3)在可能的情況下, 盡可能多的給模塊的輸出加Resister. 盡可能地優(yōu)化模塊的劃分與接口, 是提高層次化設(shè)計性能的關(guān)鍵. 更詳細的方法與建議, 可以參照我們的應(yīng)用文檔AN101.

          40. 以前的問題提到, 用EPM7064LC68進行編譯, 會出現(xiàn)編譯錯誤. 如果編譯時, 讓系統(tǒng)自動選擇器件, 則選中的器件是EPM7064SLC84, 編譯通過. 我查遍手頭的資料, 并沒有發(fā)現(xiàn)后者有三個輸出使能, 這是怎么回事?望解答.

          答:事實上在MAX7000S上有6個輸出使能控制信號, 你可以在MAX7000的數(shù)據(jù)手冊(M7000. PDF)第二頁看到有這樣的說明.

          Enhanced features available in MAX 7000E and MAX 7000S devices – Six pin- or logic-driven output enable signals

          41. 在FPGA中是以何種形式實現(xiàn)VHDL的變量類型的?

          答:There is no definite answer to this. It depends on how you write your codes. A variable in vhdl may be synthesized into a physical net, or it may not exist at all in the resulting circuit. 文:沒有明確的答案. 它取決于所編寫的代碼. Vhdl中的變量可能同步到物理網(wǎng)絡(luò)中, 或者根本不可能存在于結(jié)果電路中. )

          42. 在布線后生成的時序報告文件中, 可以看到延時的一些報告, 對于某條時序報告, 如何定位其對應(yīng)的語句呢?特別是當(dāng)完全使用語言方式輸入時, 生成的網(wǎng)表中大量的為N**形式, 無法看懂其含義.

          答:Most synthesizers do preserve signal names to a certain extend, usually a string is concatenated to the end of the original name. So you can still correlate the names in many cases. For those strange net names like N***, they are signals generated by the synthesizer and may not have a counterpart in the original source code. (參考譯文:大多數(shù)合成器是會以某種擴展名來保存信號名稱, 這些擴展名通常是連接到最初的名稱末尾的字符串. 使這些名稱在很多情況下仍然相關(guān). 至于那些像N***一樣奇怪的網(wǎng)表名稱, 是由合成器生成的信號, 而且可能不會在最初的源代碼中有副本. )

          43. 布線后時序仿真與實際電路板上測試一般都不一樣, 特別對于高速信號, 幾個ns的差別是很大的, 到底應(yīng)該以哪一個為標準進行設(shè)計呢?

          答:The timing information you get from the post-layout simulation is based on worst case parameter. So you usually have better results on silicon than in simulation. For robust designs, always consider the worst case. (參考譯文:從時序仿真中獲得的時序信息是基于最壞情況參數(shù)的. 因此, 通常在硅片上實際操作的結(jié)果要比仿真中的好. 對于可靠的設(shè)計而言, 始終都要考慮最壞的情況. )

          44. ISE4. 2和ISE4. 1相比有何改進?

          答:Here's a brief list of new features in ISE4. 2i (以下是ISE4. 2i新特性的要點)

          - Device support for VirtexII Pro and CoolRunnerII (設(shè)備支持VirtexII Pro和CoolRunnerII)

          - Provides 2 new source types, BMM files and ELF files, for embedded VirtexII Pro PowerPC and Microblaze processor support. BMM file is the Block RAM Memory Map file that describes the organization of Block RAM memory. ELF file is the Executable and Linkable Format file contains the executable CPU code image to be stored in Block RAM as specified in the BMM file. (提供2個新的源類型:BMM文件和ELF文件, 以支持嵌入式VirtexII Pro PowerPC和Microblaze處理器. BMM文件是“塊RAM內(nèi)存圖”文件, 它描述了塊RAM內(nèi)存的結(jié)構(gòu). ELF文件是“可執(zhí)行和可鏈接格式”文件, 它包含存儲在BMM文件中指定的塊RAM的可執(zhí)行CPU代碼圖. )

          - Improved PAD file for easier to import into a spreadsheet program for viewing, sorting and printing. (改進PAD文件, 以便導(dǎo)入到電子表格程序中, 供查看、存儲和打?。?

          - iMPACT now incorporates the functionality of the PROM File Formatter and Xilinx System ACE software. (iMPACT與PROM文件格式程序和Xilinx系統(tǒng)ACE軟件的功能相結(jié)合)

          - XST enhancement for better language support and preservation of internal signal names. (XST增強了語言支持, 并能保存內(nèi)部信號名稱. )

          For more information regarding Xilinx ISE4. 2i, please visit our website www. xilinx. com (更多有關(guān)Xilinx ISE4. 2i的信息, 請訪問網(wǎng)站www. xilinx. com).

          45. 經(jīng)??吹絞ate這個詞. 能夠具體解釋一下它的含義, 例舉其用法以及如何避免問題?

          答:Here're a couple of examples :(舉例說明)

          - Never use gated clock. By gated clock we mean the clock signal comes out from combinational logic. It is well known that any signal coming out of combinational logic is prone to glitch. The result is fatal if there is a glitch on your clock signal since it will cause false triggering of FFs. A common technique to avoid gated clock is to utilize the clock enable pin on the FF. (從不使用gated clock. 這個詞表示時鐘信號出自組合邏輯. 眾所周知, 任何出自組合邏輯的信號都容易發(fā)生故障. 由于時鐘信號上的故障將導(dǎo)致錯誤觸發(fā)FF, 其結(jié)果是致命的. 避免gated clock常用的技巧是利用FF上的時鐘使能引腳. )

          - Never design a circuit that relies on gate delay to function. It was a common practise in the past to introduce a delay in the design by inserting a series of logic gates. This is not a recommended style in modern high speed digital design since the delay changes as new devices coming out from more advance process technologies. Also, the amount of delay changes as temperature and voltage as well. So it is not a good design practice to have circuits which relies in gate delay to function. (絕不設(shè)計依賴gate delay工作的電路. 通過插入一系列邏輯門在設(shè)計中引入延遲, 這是以前常見的作法. 而在現(xiàn)代高速數(shù)字設(shè)計中, 建議不要使用這種作法, 因為延遲會隨采用更先進的工藝技術(shù)所制造的新器件而改變. 而且, 延遲的總量也會隨溫度和電壓而改變. 因此依賴gate delay而工作的電路不是很好的設(shè)計. )


          46. 用FLEX6016設(shè)計了一個頻率測試卡, 用的是ISA總線和計算機相連, 不把卡插在ISA槽上時, 由外部提供電源時, 下載就能成功, 一但插上去, 下載就出現(xiàn)“SRAM load unsucessful”, 這是怎么回事呢?

          答:導(dǎo)致“SRAM load unsucessful”可能有各方面的原因. 基于板子由外部供電是可以下載成功, 說明下載電路是正確的; 而插入ISA槽中則出現(xiàn)問題, 可能是ISA槽供電有問題, 可以檢查一下芯片的電源信號, ISA與外部供電是否采用一致的電路, 檢查ISA供電環(huán)境, 是否存在毛刺, 電源紋波的大小.

          47. 想把EPM712和TMS320F240做在一塊實驗板上, 但是不知道怎么設(shè)計仿真口對EPM7128編程?還是必須買廠家的EPM7128開發(fā)板?

          答:可以參考AN116的下載數(shù)據(jù)手冊, 按照其中的下載原理圖來連接DSP與的下載口. 下載電路其實非常的簡單, 只需按照7128的下載波形, 從DSP中將 的下載文件依此輸入即可. 當(dāng)然也可以從當(dāng)?shù)卮砩棠抢铽@得支持, 參考一些典型下載電路.

          48. 想自己設(shè)計一塊TMS320F240試驗電路板, 包括A/D、D/A、鍵盤顯示接口, 其中譯碼、鍵盤顯示部分想用EPM7128來做, 不知道具體怎么與TMS320F240接口?

          答:所謂PLD為可編程器件, 其IO口的連接非常地靈活, IO 口的功能可以按照自己的定義來設(shè)定. 只需將希望的TMS320F240連接口連接到PLD的任意IO口上, 然后在PLD中編寫相應(yīng)的控制邏輯, 即可進行數(shù)據(jù)傳輸與控制.

          49. 變頻器盤中使用一芯片是ALTERA EP330PC-12燒壞, 請問如何處理?

          答:這是一款舊型號的芯片. 可以利用ALTERA或第三方提供的編成器將下載文件重新下載到一個好的器件中去, 或者采用MAXPLUSII軟件通過BYTEBLAST(MV)連接到板子上將編成文件讀出再下載到新的器件中去.

          50. SRFF = SR flipflop SRFF和SR latch有何區(qū)別?

          答:FUNCTION SRFF (S, R, CLK, CLRN, PRN) RETURNS (Q);

          //VHDL Component Declaration:

          COMPONENT SRFF

          PORT (s : IN STD_LOGIC;

          r : IN STD_LOGIC;

          clk : IN STD_LOGIC;

          clrn: IN STD_LOGIC;

          prn : IN STD_LOGIC;

          q : OUT STD_LOGIC);

          END COMPONENT;

          FUNCTION LATCH (D, ENA)

          RETURNS (Q);

          //VHDL Component Declaration:

          COMPONENT LATCH

          PORT (d : IN STD_LOGIC;

          ena: IN STD_LOGIC;

          q : OUT STD_LOGIC);

          END COMPONENT;

          不同點在于SRFF是一個觸發(fā)器, 而LATCH只是一個鎖存器, 更詳細的真值表可以從軟件的HELP文檔中可以查到.

          51. 想在內(nèi)部上拉輸入信號, 所使用的設(shè)備是FLEX6016. 怎么做?

          答:可以在MAXPLUSII中選定該信號, 然后選擇assign-> logic option->Individual logic options -> Enable pull-up resistor. 然后重新編譯一下就可以了.

          52. 有關(guān)輸入信號的上拉問題(前題), 按照專家的回答做過, 但是失敗了, 不知道是什么原因?qū)е铝舜朔ú豢尚??還有沒有別的辦法?

          答:Altera的FLEX6000系列在I/O管腳上是沒有上下拉電阻的, 所以加了約束也沒有作用.

          53. 使用AHDL語言編寫的程序. 在Quartus II 1. 0下編譯, 使用的是20K400EBC652-3的片子. 將編譯產(chǎn)生的pof文件下載到EPROM里, 但是在程序沒有多大修改的情況下(僅僅改變一些測試管腳), 程序運行結(jié)果不一樣. 具體表現(xiàn)在DSP芯片啟動FPGA里的一根控制線不穩(wěn).

          答:邏輯功能仿真結(jié)果如何?在修改前后有沒有改變?假如說功能仿真是對的, 請確認設(shè)計Timing是否滿足要求, 尤其是IO的Timing 要求是否達到. 在可能的情況下進行后仿真, 其仿真結(jié)果能夠確保你的邏輯在PCB板上正常地工作. 假如仿真結(jié)果與Timing要求都沒有問題, 其邏輯一定能在板子上正常地工作.

          54. 當(dāng)一個輸入信號不滿足觸發(fā)器的Setup/Hold時間時, 觸發(fā)器的輸出信號是不是一穩(wěn)定狀態(tài)(或為0, 或為1, 當(dāng)下一次的輸入信號滿足Setup/Hold時間時, 觸發(fā)器能正確地輸出)?由于此時觸發(fā)器處于亞穩(wěn)態(tài), 以前看過一些資料, 某些器件的輸出可能是振蕩狀態(tài), 即此時、將來的輸出信號不可預(yù)測, 與時鐘信號、輸入信號無關(guān). 我想問的是Altera器件對此情況是如何處理?因為某些情況下, 當(dāng)輸入信號超過1個Clk時間, 只是在第一個Clk周期內(nèi), 不滿足Setup/Hold, 但是其他的Clk周期內(nèi), 滿足Setup/Hold.

          答:關(guān)于這個問題, 建議參考一下ALTERA的文檔AN42. 該文檔詳細地討論了ALTERA器件的亞穩(wěn)態(tài)性. 網(wǎng)上的地址是http://www. altera. com/literature/an/an042. pdf.

          55. 在中國市場上, 可以容易買到使用Altera公司的軟件MAX+PlussII進行VHDL和FPGA設(shè)計的教程書籍, 但是卻鮮有使用Xilinx foundation軟件平臺的書籍, Xilinx是否考慮增強這方面內(nèi)容?

          答:Thank you for your input. In fact there are a number of books available in the market on Xilinx FPGA and development tools. A good example is the title XILINX 數(shù)字系統(tǒng)集成技術(shù) by Professor 朱明程, published by Southeast University Press. We will work closely with local publishers to bring out more titles on Xilinx products. (市場上還是有幾本Xilinx FPGA和開發(fā)工具的書. 比較好的有朱明程教授編的《XILINX 數(shù)字系統(tǒng)集成技術(shù)》, 東南大學(xué)出版社出版. Xilinx公司也將會與本地出版商密切合作, 推出更多針對Xilinx產(chǎn)品的書籍. )

          56. 在ISE4. 1環(huán)境下編寫一個包結(jié)構(gòu), 里面有幾個函數(shù), 編譯通過, 而MODELSIM 仿真出錯, 提示:沒有找到此PACKAGE, 為什么?

          答:After you have created the package, you need to add it to your project. In the source window, right click and select Add source, pick the source file for your vhdl package, and then select Vhdl package. The package will then be added to your ISE project. (參考譯文:創(chuàng)建了這個包之后, 需要將它添加到項目中. 在源代碼窗口, 右鍵單擊并選擇“Add source”, 為vhdl包選擇源文件, 然后選“Vhdl package”. 這個包就添加到ISE項目中了. )

          57. 布板時, 時鐘信號沒有接全局時鐘, 如何處理時鐘使之可以更好(不需飛線)?

          答:You can bring the signal back to the global clock network by inserting a BUFG. (參考譯文:可以通過插入一個BUFG將一個信號返回全局時鐘網(wǎng)絡(luò). )

          58. 準備使用XCV50 FPGA, 前面有16個模塊, 本來每個模塊都須要一個27M的時鐘, 為了達到同步, 初步設(shè)想外部接一個27M時鐘, 最后由FPGA產(chǎn)生16個27M的時鐘輸出, 這樣做驅(qū)動會不會有問題?

          答:A possible way is to feed your 27MHz input clock to a DLL. The output of the DLL drives multiple OBUF. In this way you can create multiple copies of your input clock to drive other components on your board. You don't actually need 16 OBUFs since each OBUF can drive several loads. Note that although the DLL output can drive multiple OBUF, only the one which provides feedback to the DLL can be completely deskewed. You can also add a MAXSKEW constraint on the output net of the DLL to minimize skew among the OBUFs. This may not be a big issue since 27MHz is relatively slow. (參考譯文:可能的方法是將27MHz輸入時鐘傳遞給DLL. DLL輸出驅(qū)動多重OBUF. 用這種方法可以創(chuàng)建輸入時鐘的多個副本以驅(qū)動板子上的其它組件. 實際上, 不需要16個OBUF, 因為每個OBUF都可以驅(qū)動幾個負載. 請注意, 雖然DLL輸出能驅(qū)動多個OBUF, 但只有那個向DLL提供反饋的OBUF可以完全對稱(deskewed)的. 也可以在DLL的輸出量上添加MAXSKEW限制, 以最小化OBUF間的偏斜. 因為27MHz相對比較慢, 所以問題不大. )

          For more information regarding the use of DLL, please refer to the application note XAPP132 which can downloaded from the xilinx websitewww. xilinx. com(關(guān)于DLL的使用, 請參考XAPP132的應(yīng)用手冊. )


          59. IP CAPTION 就是核發(fā)生器, 它運行在核發(fā)生器目錄下嗎?

          答:I think you mean IP Capture. The IP Capture tool provides designers with an automated method to identify, capture, and document a core. The core can exist in the form of synthesizable VHDL or Verilog code, or a fixed function netlist. Once the new module has been captured, it can be installed into and distributed from a user's local copy of the Xilinx CORE Generator system. (參考譯文:所指的應(yīng)該是IP Capture吧. IP Capture工具為設(shè)計者提供了自動識別、捕獲和歸檔核的方法. 核可以綜合VHDL或Verilog碼, 或固定功能連接表的形式存在. 一旦捕獲了新模塊, 就能夠?qū)⒑搜b入, 并從用戶的本機Xilinx CORE Generator副本中分配此核. )

          Details of the IP Capture tools can be found from Xilinx website . http://www. xilinx. com/page_moved/ipcenter_e. htm?url=/ipcenter/designreuse/ipic. htm(有關(guān)IP Capture工具的詳細資料, 請訪問相關(guān)網(wǎng)站. )

          60. 制作了一塊試驗板, CPLD使用EPF10K20TI144-4. 用max+plus II 10. 1編程, 完成后, 下載至片子內(nèi), 經(jīng)過幾次下載嘗試(一直提示configuration failure: SRAM load unsucessful), 直至提示“configuration complete”——這應(yīng)該是表示下載成功吧, 可是片子卻無法實現(xiàn)任何功能(連最基本的一個或門都無法實現(xiàn))——不起任何作用, 我使用TQFP-144的適配座放置EPF10K20TI144. 現(xiàn)在有幾個問題:

          ① 編譯前選擇的是EPF10K20TC144-3芯片(max+plus II的器件庫中沒有EPF10K20TI144-4), 有沒有關(guān)系?也用EPF10K10TC144-4試過, 也是可以下載但無法實現(xiàn)功能.

          ② 為什么要下載很多次才能成功, 下載線是自己制作的?

          ③ 將MSEL0、MSEL1、nCE、專用輸入腳、專用時鐘腳接地, 其它非I/O引腳懸空, 是否還有些引腳需要接地或VCC?

          ④ 如果因為TQFP-144適配座一些觸點與CPLD引腳接觸不好導(dǎo)致一些VCCIO, VCCINT、GNDINT、GNDIO或其它一些非I/O引腳懸空, 會出現(xiàn)什么結(jié)果?

          ⑤ 如何才能使CPLD實現(xiàn)功能?

          答:根據(jù)描述, 很有可能是加載電路有問題, 請參照Altera的AN116文件的加載電路圖仔細核對, 特別注意和CPU相連的加載控制管腳:

          ① 編譯芯片選擇與速度等級無關(guān);

          ② 請檢測conf_done信號是否拉高;

          ③ 在常用的PS和JTAG加載模式時除了MSEL0, MSEL1, nCE, 沒用的專用輸入腳, 專用時鐘腳應(yīng)該接地 , data0, nconfig, dclk, nstatus, conf_done都應(yīng)該上拉, 這些管腳不上拉很可能是導(dǎo)致你加載不成功的原因;

          ④ 如果因為TQFP-144適配座一些觸點與CPLD引腳接觸不好導(dǎo)致一些VCCIO, VCCINT, GNDINT, GNDIO或其它一些非I/O引腳懸空, 會出現(xiàn)會出現(xiàn)加載鏈路不通或加載不成功的現(xiàn)象;

          ⑤ 加載成功后CPLD就能實現(xiàn)功能.

          61. 目前采用SRAM技術(shù)的LUT-based的FPGA仍然占絕對主流地位, 但是這種FPGA有其天生的缺陷, 請問下一代FPGA的構(gòu)架發(fā)展趨勢怎樣?Altera在這方面有沒有什么新的嘗試?

          答:下一代FPGA主要朝著SOPC的方向發(fā)展:

          Altera的下一代產(chǎn)品Stratix, 基本單元LE仍然基于LUT結(jié)構(gòu), 但有些大的改變,

          ① 去掉了傳統(tǒng)的級聯(lián)鏈(Cascade Chain);

          ② 進位鏈(Carry Chain)由以前的單一1條變?yōu)長AB Carry-in、Carry-in1、Carry-in0三條;

          ③ LE的扇出也由2個變?yōu)榱?個;

          ④ 觸發(fā)器的控制信號也更多.

          其它方面:

          ① RAM:一改以前單一2K BITs 或4K BITs的 Memory為小RAM:512BITs; 中RAM:4KBITs;大RAM:512 KBITs;

          ② 第一次在FPGA中嵌入DSP;

          ③ 時鐘鏈路也由全局時鐘變?yōu)槿謺r鐘和區(qū)域全局時鐘;

          ④ . . . . . .

          所有的這些變化都是通過大量的用戶反饋信息作出的慎重改進, 使的Stratix器件更加適合用戶的設(shè)計需求

          62. 能否提供7128的下載波形、DSP與PLD的典型下載電路?

          答:7128的下載波形與PLD的典型下載電路在Altera應(yīng)用文檔AN95里有詳細的說明.

          63. Always use fully synchronous design. You never need to reply on gate delay if your design is fully synchronous. 如果設(shè)計是完全同步的, 意思是就可以不用依靠門延時. 但在設(shè)計時, 在對和數(shù)據(jù)一同進來的控制信號進行處理后所產(chǎn)生的輸出控制信號會滯后數(shù)據(jù)數(shù)個時鐘周期, 這時就不得不對數(shù)據(jù)進行門延時, 已達到同步. 現(xiàn)在看來, 這是不合適的. 但是, 要用什么辦法來處理這個問題而不應(yīng)用門延時呢?

          答:In a fully synchronous design, you only have 3 kinds of paths(在完全同步設(shè)計中, 只有三種途徑:)

          ① From I/O to synchronous element. (從I/O到同步元素)

          ② From synchronous element to synchronous element. (從同步元素到同步元素).

          ③ From synchronous element to I/O. (從同步元素到I/O)

          A fully synchronous design will work as long as the delays of all these paths do not exceed the clock period. So you never need to introduce any delay. If you derive any control signal from the input signals, that control signal only goes to the 'D' or 'EN' pin of a FF, but not the 'CLK' pin. So there is no need to introduce any delay to your data. Simply speaking, you only need to design the data path but not the clock path in a fully synchrous design.

          On the other hand, you can remove clock delay with the DLL in Xilinx SpartanII/Virtex devices or the DCM in VirtexII devices. (完全同步設(shè)計將工作到所有這些路徑的延遲不超過時鐘期間. 因此從不需要傳入任何延遲. 如果從輸入信號中得到任何控制信號, 則該控制信號只能傳遞至FF的D或EN引腳, 而不是CLK引腳. 因此, 不需要將任何延遲傳入數(shù)據(jù). 簡單講, 在完全同步設(shè)計中, 只需設(shè)計“數(shù)據(jù)”路徑, 而不是“時鐘”路徑. )

          64. ISE4. 2I可對某些特殊管腳設(shè)置內(nèi)部上拉, 那么外部是不是就可以不必再加上拉電阻了?另外, 配置過程中, 所有的用戶I/O是否均為三態(tài)? VIRTEX2的HSWAP_EN應(yīng)接何電平?為什么?

          答:Whether you need to add external pullup resistors depends on your board design. Usually external pullup resistors are required under the following conditions((參考譯文:是否需要添加外部上拉電阻取決于電路板設(shè)計. 通常在以下條件下需要外部上拉電阻:)

          - You need precise pullup values. The pullup built into the IOB is not specified to a precise resistive value since it values from batch to batch. (需要精確的上拉值. 因為it values from batch to batch, 所以然內(nèi)置入IOB的上拉未指定精確電阻值. )

          - You need strong pull-up strength. The IOB pullup is relatively weak - in the order of several tens of KOhms. (需要強大的上拉動力. IOB上拉相對較弱, 只有數(shù)十千歐)

          If you only want to prevent the board signal from floating, external pullup is usually not required.

          You need to refer to the datasheet of the corresponding FPGA series to determine the state of the I/O during configuration. As an example, I/O pins of Virtex-E and Spartan-IIE behave as tri-state beore configuration. The HSWAP_EN pin on Xilinx Virtex-II is for enabling/disabling pullups on the user I/O pins during configuration. By default, HSWAP_EN is tied high (internal pullup resistor) which turn off pullup resistors on user I/O during configuration. (如果只想阻止板信號浮動, 通常不需要外部上拉. 需要參考相應(yīng)的FPGA系列的參數(shù)表, 以確定配置過程中I/O的狀態(tài). 例如, Virtex-E和Spartan-IIE的I/O引腳在配置以前是三態(tài)的. 配置過程中, Xilinx Virtex-II 上的HSWAP_EN引腳用于啟用/禁用用戶I/O引腳上的上拉. 缺省情況下, HSWAP_EN系有較高內(nèi)部上拉電阻, 用于在配置期間關(guān)閉用戶I/O上的上拉電阻).

          65. 自頂向下的設(shè)計過程是什么樣的一種過程?我的理解是在設(shè)計開始時, 利用vhdl或verilog中的延遲描述語言在功能和波形上進行仿真描述, 而后進行rtl設(shè)計. . . . 是否是這樣的一個過程?

          答:By top down design we usually mean you partition the top level design into a number of modules first, without going into details of each of those modules. Then you start to design each module, which may involves defining more underlying submodules. The process stops when you have designed all the underlying submodules. The basic idea is to build a hierarchy which starts with less details on the top and more details as you go down the hierarchy. (參考譯文:我們所謂的自頂向下設(shè)計通常是指:先將頂級設(shè)計劃分為多個模塊, 而不涉及這些模塊的細節(jié). 然后開始設(shè)計每個模塊, 可能包括定義更多底層子模塊. 當(dāng)設(shè)計完成所有底層子模塊后, 這個過程即完成. 基本思路是建立一個層次結(jié)構(gòu), 從頂部粗略劃分開始, 越向下層越詳細. )

          66. HSWAP_EN推薦接高還是低, 為什么?

          答:There is no definite answer to this - it depends on whether you want the user I/Os to have pull up resistors during configurations. Therefore it is design dependent. (參考譯文:沒有定論. 高還是低取決于配置過程中是否要使用者I/O具有上拉電阻. 因此因設(shè)計而定. )

          67. 用ISE做過很多的設(shè)計, 但是ISE中的help對設(shè)計說的比較詳細, 但是對Navigator的功能的說明不是很好. ISE中有一個Library_view. 當(dāng)你把work庫中的設(shè)計move到VHDL或VERILOG中, 這時就會在library_view的窗口中看到. 但是什么用也沒有呀. VHDL里用library ****; use *** 不行. veriloghdl里用`include也不行. 還不如直接在work中的一個package. 什么時候用到library_view中的功能?

          答:The proper method to create and use library within ISE is (正確的方法是創(chuàng)建并使用ISE中的庫, 過程如下:)

          ① Click Project->New Source and select VHDL library. (單擊Project->New Source 然后選擇 VHDL 庫)

          ② Enter a name for the new library and click Next, then Finish. The new library is now visiable in the Library View tab. (為新的庫輸入名稱, 然后單擊Next-> Finish. 新的庫即出現(xiàn)在Library View標簽上. )

          ③ In the library view tab, right click on the new library and then click Add Sources. (在庫查看標簽中, 右鍵單擊新庫, 然后單擊Add Sources)

          ④ Choose the sources you want to add to the library. (選擇要添加到庫的源)

          ⑤ You can then use this library in your source codes. For example (然后可以在源代碼中使用這個庫. 例如:)

          library MyLib;

          use MyLib. MyPkg. all;

          . . . . .

          Please refer to p. 5-14 to 5-17 of the ISE User Guide which is included in the ISE Documentation CD for more details. (詳情請參閱ISE文檔說明光盤中的ISE User Guide 5-14至5-17)

          68. 利用器件的IBIS模型能否對器件的功能進行仿真?

          答:IBIS models provide information about I/O driver and receiver characteristics without disclosing proprietary knowledge of the IC design (as unencrypted SPICE models do). You need to have an IBIS simulator in order to use the IBIS model. It is not for logic simulation like vhdl or verilog models do. (參考譯文:IBIS模型提供有關(guān)I/O驅(qū)動器和接收器特征的信息, 而不會透露IC設(shè)計的所有權(quán)信息, 這和未加密的SPICE模型一樣. 為了使用IBIS模型, 需要有一個IBIS模擬器. 像vhdl或verilog模型一樣, 它不是適用于邏輯仿真. )


          69. 用modelsim后仿真時需要用到XILINX的庫, 下載了XILINX網(wǎng)址提供的TCL文件, 按照要求在AUTOEXEC. BAT中設(shè)置了SET MODELSIM=****, 重啟了機器, 在MODELSIM下運行了TCL文件, 選項為VERILOG, simprim, 可是MODELSIM 還是報找不到庫, 為什么?所用ISE版本為ISE4. 1I.

          答:The tcl script is for compiling the Xilinx libraries with Modelsim. After you've compile the libraries, you need to vmap them when you simulate your design. For example, if the physical path to your compiled simprim library is d:/xilinx_sim_model/simprim, you need to map simprim to the full path by typing vmap simprim d:/xilinx_sim_model/simprim at the Modelsim command prompt. Then you can simulate your design by the following command vsim -L simprim (參考譯文件:tcl腳本是為使用Modelsim編譯Xilinx庫的. 在編譯完庫之后, 仿真設(shè)計時需要vmap這些庫. 例如, 如果指向已編譯的simprim庫的物理路徑是d:/xilinx_sim_model/simprim, 則需要通過在Modelsim命令提示處輸入vmap simprim d:/xilinx_sim_model/simprim來將simprim映射到完整路徑. 然后可以使用命令vsim -L simprim 仿真設(shè)計. )

          70. PIN HSWAP_EN的作用是使能或關(guān)閉配置時I/O管腳上的上拉電阻, 這兩種情況具體有什么不同呢?PCB設(shè)計時HSWAP_EN具體如何處理?

          答:The Virtex-II HSWAP-EN pin has an internal pull-up by default to turn off the pull-up resistors at the I/O pins during configuration. You need to tie it low externally if you need to activate the pull-up at I/O pins during configuration. (參考譯文:缺省情況下, Virtex-II HSWAP-EN管腳有一個內(nèi)部上拉電阻, 以在配置期間關(guān)閉I/O管腳上的上拉電阻. 如果在配置過程中需要激活I(lǐng)/O管腳的上拉電阻, 需要將這個上拉電阻在表面上約束到較低. )

          71. PWRDWN_B是power down pin, 可不可以不連接或上拉?

          答:The PWRDWN_B pin was provided to set a Virtex-II device into a power-down mode: a low-power, inactive state. However, this feature is no longer supported in Virtex-II. To set it as inactive, the PWRDWN_B should be left at its default value, which is pulled up. (The PWRDWN_B does not require an external pull-up or pull-down. ). Please refer to Xilinx website for more details. (參考譯文:PWRDWN_B管腳用于將Virtex-II器件設(shè)定為功率下降模式:低功率和不活動狀態(tài). 然而Virtex-II中已不再支持這種功能. 要在非活動狀態(tài)下設(shè)定它, PWRDWN_B應(yīng)該保留缺省值, 即已上拉. PWRDWN_B不要求外部上拉或下拉. 詳情講參閱Xilinx網(wǎng)站).

          72. spartanII不能下載, 顯示done不能拉高, done上上拉電阻已接, 是何原因?

          答: Here are my suggestions(有幾點建議:)

          -Check if the mode pin is selected correctly. (檢查是否正確選擇了方式管腳).

          - Check if you have selected the correct startup clock. If you are using serial mode, you need to use Cclk. If you are using jtag, you


          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉