亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

蟲蟲首頁| 資源下載| 資源專輯| 精品軟件
登錄| 注冊

FPGA開(kāi)發(fā)實(shí)用教程

  • FPGA開發全攻略(下冊)

    FPGA開發全攻略(下冊) 如何克服 FPGA I/O 引腳分配挑戰 作者:Brian Jackson  產品營銷經理Xilinx, Inc.  brian.jackson@xilinx.com 對于需要在 PCB 板上使用大規模 FPGA 器件的設計人員來說,I/O 引腳分配是必須面對的眾多挑戰之一。  由于眾多原因,許多設計人員發表為大型 FPGA 器件和高級 BGA 封裝確定 I/O 引腳配置或布局方案越來越困難。  但是組合運用多種智能 I/O 規劃工具,能夠使引腳分配過程變得更輕松。  在 PCB 上定義 FPGA 器件的 I/O 引腳布局是一項艱巨的設計挑戰,即可能幫助設計快速完成,也有可能造 成設計失敗。 在此過程中必須平衡 FPGA 和 PCB 兩方面的要求,同時還要并行完成兩者的設計。 如果僅僅針 對 PCB 或 FPGA 進行引腳布局優化,那么可能在另一方面引起設計問題。  為了解引腳分配所引起的后果,需要以可視化形式顯示出 PCB 布局和 FPGA 物理器件引腳,以及內部 FPGA I/O 點和相關資源。 不幸的是,到今天為止還沒有單個工具或方法能夠同時滿足所有這些協同設計需求。  然而,可以結合不同的技術和策略來優化引腳規劃流程并積極采用 Xilinx? PinAhead 技術等新協同設計工 具來發展出一套有效的引腳分配和布局方法。 賽靈思公司在 ISE? 軟件設計套件 10.1 版中包含了 PinAhead。  賽靈思公司開發了一種規則驅動的方法。首先根據 PCB 和 FPGA 設計要求定義一套初始引腳布局,這樣利 用與最終版本非常接近的引腳布局設計小組就可以盡可能早地開始各自的設計流程。 如果在設計流程的后期由 于 PCB 布線或內部 FPGA 性能問題而需要進行調整,在采用這一方法晨這些問題通常也已經局部化了,只需要 在 PCB 或 FPGA 設計中進行很小的設計修改。

    標簽: FPGA開發全攻略

    上傳時間: 2022-03-28

    上傳用戶:默默

  • 基于FPGA的CCD探測系統

    隨著圖像采集系統的廣泛應用,人們對CCD探測系統的要求日益提高。傳統的CCD探測系統由于結構復雜,造價較高,已不能滿足日益廣泛的應用需要。本文設計了一套基于單片FPGA的小型化與經濟化的CCD探測系統,能夠滿足空間光強的測量并實現光信號的識別和處理。本文研究了CCD探測系統的基本結構。設計了基于單片FPGA的CCD探測系統的硬件電路原理圖,完成了硬件電路板制作與調試。系統FPGA選用Altera公司的低成本FPGA芯片EP2C20Q240,電路板采用雙層板設計,實現了CCD探測系統的小型化與經濟化的目標。利用FPGA器件實現了CCD驅動時序脈沖的設計、實現了單采樣與相關雙采樣的控制程序設計,利用FPGA的數字信號處理功能實現了相關雙采樣的信號處理。基于FPGA的可編程特性,在不改變外部電路的基礎上,通過程序的改變,對CCD驅動頻率、模數轉換器采樣時刻的選擇進行方便調節。系統與上位機的數據傳輸接口采用了網絡傳輸方案,充分發揮了網絡傳輸的遠距離傳輸、遠程訪問、信息共享等優勢,系統采用基于FPGA的Nios IⅡ嵌入式處理器系統,通過對其應用軟件的開發,實現了系統與上位機之間數據的可靠性傳輸。

    標簽: fpga ccd

    上傳時間: 2022-06-23

    上傳用戶:xsr1983

  • 基于FPGA的MPEG-2預處理TS流復用設計及驗證

      本文著重研究了多路數字節目復用器中的對多路預處理TS流復用的原理和基于FPGA的實現方法。首先論述了關于數字電視系統的一些基本概念,介紹了MPEG-2/DVB標準以及數字電視節目專用信息(PSI),并結合多路數字節目復用的基本原理提出了一套基于FPGA的設計方案。通過對復用器輸入部分、復用控制邏輯和PCR校正等一系列模塊的設計及仿真驗證,達到了設計的要求,取得了一定的研究成果。

    標簽: FPGA MPEG 預處理 TS流

    上傳時間: 2013-06-09

    上傳用戶:bugtamor

  • 交織與解交織的算法研究及FPGA實現

    本文主要研究了數字聲音廣播系統(DAB)內交織器與解交織器的算法及硬件實現方法。時間交織器與解交織器的硬件實現可以有幾種實現方案,本文對其性能進行了分析比較,選擇了一種工程中實用的設計方案進行設計,并將設計結果以FPGA設計驗證。時間解交織器的交織速度、電路面積、占用內存、是設計中主要因素,文中采用了單口SRAM實現,減少了對存儲器的使用,利用lC設計的優化設計方法來改善電路的面積。硬件實現是采用工業EDA標準Top-to-Down設計思想來設計時間解交織,使用verilogHDL硬件描述語言來描述解交織器,用Cadence Nc-verilog進行仿真,Debussy進行debug,在Altera公司的FPGA開發板上進行測試,然后用ASIC實現。測試結果證明:時間解交織器的輸出正確,實現速度較快,占用面積較小。

    標簽: FPGA 算法研究

    上傳時間: 2013-04-24

    上傳用戶:梧桐

  • DDR2SDRAM存儲器接口設計

    內部存儲器負責計算機系統內部數據的中轉、存儲與讀取,作為計算機系統中必不可少的三大件之一,它對計算機系統性能至關重要。內存可以說是CPU處理數據的“大倉庫”,所有經過CPU處理的指令和數據都要經過內存傳遞到電腦其他配件上,因此內存性能的好壞,直接影響到系統的穩定性和運行性能。在當今的電子系統設計中,內存被使用得越來越多,并且對內存的要求越來越高。既要求內存讀寫速度盡可能的快、容量盡可能的大,同時由于競爭的加劇以及利潤率的下降,人們希望在保持、甚至提高系統性能的同時也能降低內存產品的成本。面對這種趨勢,設計和實現大容量高速讀寫的內存顯得尤為重要。因此,近年來內存產品正經歷著從小容量到大容量、從低速到高速的不斷變化,從技術上也就有了從DRAM到SDRAM,再到DDR SDRAM及DDR2 SDRAM等的不斷演進。和普通SDRAM的接口設計相比,DDR2 SDRAM存儲器在獲得大容量和高速率的同時,對存儲器的接口設計也提出了更高的要求,其接口設計復雜度也大幅增加。一方面,由于I/O塊中的資源是有限的,數據多路分解和時鐘轉換邏輯必須在FPGA核心邏輯中實現,設計者可能不得不對接口邏輯進行手工布線以確保臨界時序。而另一方面,不得不處理好與DDR2接口有關的時序問題(包括溫度和電壓補償)。要正確的實現DDR2接口需要非常細致的工作,并在提供設計靈活性的同時確保系統性能和可靠性。 本文對通過Xilinx的Spartan3 FPGA實現DDR2內存接口的設計與實現進行了詳細闡述。通過Xilinx FPGA提供了I/O模塊和邏輯資源,從而使接口設計變得更簡單、更可靠。本設計中對I/O模塊及其他邏輯在RTL代碼中進行了配置、嚴整、執行,并正確連接到FPGA上,經過仔細仿真,然后在硬件中驗證,以確保存儲器接口系統的可靠性。

    標簽: DDR2SDRAM 存儲器 接口設計

    上傳時間: 2013-06-08

    上傳用戶:fairy0212

  • FPGA布線算法的研究

    現場可編程門陣列(FPGA)是一種可實現多層次邏輯器件。基于SRAM的FPGA結構由邏輯單元陣列來實現所需要的邏輯函數。FPGA中,互連線資源是預先定制的,這些資源是由各種長度的可分割金屬線,緩沖器和.MOS管實現的,所以相對于ASIC中互連線所占用的面積更大。為了節省芯片面積,一般都采用單個MOS晶體管來連接邏輯資源。MOS晶體管的導通電阻可以達到千歐量級,可分割金屬線段的電阻相對于MOS管來說是可以忽略的,然而它和地之間的電容達到了0.1pf[1]。為了評估FPGA的性能,用HSPICE仿真模型雖可以獲得非常精確的結果,但是基于此模型需要花費太多的時間。這在基于時序驅動的工藝映射和布局布線以及靜態時序分析中都是不可行的。于是,非常迫切地需要一種快速而精確的模型。 FPGA中連接盒、開關盒都是由MOS管組成的。FPGA中的時延很大部分取決于互連,而MOS傳輸晶體管在互連中又占了很大的比重。所以對于MOS管的建模對FPGA時延估算有很大的影響意義。對于MOS管,Muhammad[15]采用導通電阻來代替MOS管,然后用。Elmore[3]時延和Rubinstein[4]時延模型估算互連時延。Elmore時延用電路的一階矩來近似信號到達最大值50%時的時延,而Rubinstein也是通過計算電路的一階矩估算時延的上下邊界來估算電路的時延,然而他們都是用來計算RC互連時延。傳輸管是非線性器件,所以沒有一個固定的電阻,這就造成了Elmore時延和Rubinstein時延模型的過于近似的估算,對整體評估FPGA的性能帶來負面因素。 本論文提出快速而精確的現場可編程門陣列FPGA中的互連資源MOS傳輸管時延模型。首先從階躍信號推導出適合50%時延的等效電阻模型,然后在斜坡輸入的時候,給出斜坡輸入時的時延模型,并且給出等效電容的計算方法。結果驗證了我們精確的時延模型在時間上的開銷少的性能。 在島型FPGA中,單個傳輸管能夠被用來作為互連線和互連線之間的連接,或者互連線和管腳之間的連接,如VPR把互連線和管腳作為布線資源,管腳只能單獨作為輸入或者輸出管腳,以致于它們不是一個線網的起點就是線網的終點。而這恰恰忽略了管腳實際在物理上可以作為互連線來使用的情況(VPR認為dogleg現象本身對性能提高不多)。本論文通過對dogleg現象進行了探索,并驗證了在使用SUBSET開關盒的情況下,dogleg能提高FPGA的布通率。

    標簽: FPGA 布線 法的研究

    上傳時間: 2013-07-24

    上傳用戶:yezhihao

  • 匯編+保護模式+教程

    九.輸入/輸出保護為了支持多任務,80386不僅要有效地實現任務隔離,而且還要有效地控制各任務的輸入/輸出,避免輸入/輸出沖突。本文將介紹輸入輸出保護。 這里下載本文源代碼。 <一>輸入/輸出保護80386采用I/O特權級IPOL和I/O許可位圖的方法來控制輸入/輸出,實現輸入/輸出保護。 1.I/O敏感指令輸入輸出特權級(I/O Privilege Level)規定了可以執行所有與I/O相關的指令和訪問I/O空間中所有地址的最外層特權級。IOPL的值在如下圖所示的標志寄存器中。 標  志寄存器 BIT31—BIT18 BIT17 BIT16 BIT15 BIT14 BIT13—BIT12 BIT11 BIT10 BIT9 BIT8 BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 00000000000000 VM RF 0 NT IOPL OF DF IF TF SF ZF 0 AF 0 PF 1 CF I/O許可位圖規定了I/O空間中的哪些地址可以由在任何特權級執行的程序所訪問。I/O許可位圖在任務狀態段TSS中。 I/O敏感指令 指令 功能 保護方式下的執行條件 CLI 清除EFLAGS中的IF位 CPL<=IOPL STI 設置EFLAGS中的IF位 CPL<=IOPL IN 從I/O地址讀出數據 CPL<=IOPL或I/O位圖許可 INS 從I/O地址讀出字符串 CPL<=IOPL或I/O位圖許可 OUT 向I/O地址寫數據 CPL<=IOPL或I/O位圖許可 OUTS 向I/O地址寫字符串 CPL<=IOPL或I/O位圖許可 上表所列指令稱為I/O敏感指令,由于這些指令與I/O有關,并且只有在滿足所列條件時才可以執行,所以把它們稱為I/O敏感指令。從表中可見,當前特權級不在I/O特權級外層時,可以正常執行所列的全部I/O敏感指令;當特權級在I/O特權級外層時,執行CLI和STI指令將引起通用保護異常,而其它四條指令是否能夠被執行要根據訪問的I/O地址及I/O許可位圖情況而定(在下面論述),如果條件不滿足而執行,那么將引起出錯碼為0的通用保護異常。 由于每個任務使用各自的EFLAGS值和擁有自己的TSS,所以每個任務可以有不同的IOPL,并且可以定義不同的I/O許可位圖。注意,這些I/O敏感指令在實模式下總是可執行的。 2.I/O許可位圖如果只用IOPL限制I/O指令的執行是很不方便的,不能滿足實際要求需要。因為這樣做會使得在特權級3執行的應用程序要么可訪問所有I/O地址,要么不可訪問所有I/O地址。實際需要與此剛好相反,只允許任務甲的應用程序訪問部分I/O地址,只允許任務乙的應用程序訪問另一部分I/O地址,以避免任務甲和任務乙在訪問I/O地址時發生沖突,從而避免任務甲和任務乙使用使用獨享設備時發生沖突。 因此,在IOPL的基礎上又采用了I/O許可位圖。I/O許可位圖由二進制位串組成。位串中的每一位依次對應一個I/O地址,位串的第0位對應I/O地址0,位串的第n位對應I/O地址n。如果位串中的第位為0,那么對應的I/O地址m可以由在任何特權級執行的程序訪問;否則對應的I/O地址m只能由在IOPL特權級或更內層特權級執行的程序訪問。如果在I/O外層特權級執行的程序訪問位串中位值為1的位所對應的I/O地址,那么將引起通用保護異常。 I/O地址空間按字節進行編址。一條I/O指令最多可涉及四個I/O地址。在需要根據I/O位圖決定是否可訪問I/O地址的情況下,當一條I/O指令涉及多個I/O地址時,只有這多個I/O地址所對應的I/O許可位圖中的位都為0時,該I/O指令才能被正常執行,如果對應位中任一位為1,就會引起通用保護異常。 80386支持的I/O地址空間大小是64K,所以構成I/O許可位圖的二進制位串最大長度是64K個位,即位圖的有效部分最大為8K字節。一個任務實際需要使用的I/O許可位圖大小通常要遠小于這個數目。 當前任務使用的I/O許可位圖存儲在當前任務TSS中低端的64K字節內。I/O許可位圖總以字節為單位存儲,所以位串所含的位數總被認為是8的倍數。從前文中所述的TSS格式可見,TSS內偏移66H的字確定I/O許可位圖的開始偏移。由于I/O許可位圖最長可達8K字節,所以開始偏移應小于56K,但必須大于等于104,因為TSS中前104字節為TSS的固定格式,用于保存任務的狀態。 1.I/O訪問許可檢查細節保護模式下處理器在執行I/O指令時進行許可檢查的細節如下所示。 (1)若CPL<=IOPL,則直接轉步驟(8);(2)取得I/O位圖開始偏移;(3)計算I/O地址對應位所在字節在I/O許可位圖內的偏移;(4)計算位偏移以形成屏蔽碼值,即計算I/O地址對應位在字節中的第幾位;(5)把字節偏移加上位圖開始偏移,再加1,所得值與TSS界限比較,若越界,則產生出錯碼為0的通用保護故障;(6)若不越界,則從位圖中讀對應字節及下一個字節;(7)把讀出的兩個字節與屏蔽碼進行與運算,若結果不為0表示檢查未通過,則產生出錯碼為0的通用保護故障;(8)進行I/O訪問。設某一任務的TSS段如下: TSSSEG                  SEGMENT PARA USE16                        TSS     <>             ;TSS低端固定格式部分                        DB      8 DUP(0)       ;對應I/O端口00H—3FH                        DB      10000000B      ;對應I/O端口40H—47H                        DB      01100000B      ;對用I/O端口48H—4FH                        DB      8182 DUP(0ffH) ;對應I/O端口50H—0FFFFH                        DB      0FFH           ;位圖結束字節TSSLen                  =       $TSSSEG                  ENDS 再假設IOPL=1,CPL=3。那么如下I/O指令有些能正常執行,有些會引起通用保護異常:                         in      al,21h  ;(1)正常執行                        in      al,47h  ;(2)引起異常                        out     20h,al  ;(3)正常實行                        out     4eh,al  ;(4)引起異常                        in      al,20h  ;(5)正常執行                        out     20h,eax ;(6)正常執行                        out     4ch,ax  ;(7)引起異常                        in      ax,46h  ;(8)引起異常                        in      eax,42h ;(9)正常執行 由上述I/O許可檢查的細節可見,不論是否必要,當進行許可位檢查時,80386總是從I/O許可位圖中讀取兩個字節。目的是為了盡快地執行I/O許可檢查。一方面,常常要讀取I/O許可位圖的兩個字節。例如,上面的第(8)條指令要對I/O位圖中的兩個位進行檢查,其低位是某個字節的最高位,高位是下一個字節的最低位。可見即使只要檢查兩個位,也可能需要讀取兩個字節。另一方面,最多檢查四個連續的位,即最多也只需讀取兩個字節。所以每次要讀取兩個字節。這也是在判別是否越界時再加1的原因。為此,為了避免在讀取I/O許可位圖的最高字節時產生越界,必須在I/O許可位圖的最后填加一個全1的字節,即0FFH。此全1的字節應填加在最后一個位圖字節之后,TSS界限范圍之前,即讓填加的全1字節在TSS界限之內。 I/O許可位圖開始偏移加8K所得的值與TSS界限值二者中較小的值決定I/O許可位圖的末端。當TSS的界限大于I/O許可位圖開始偏移加8K時,I/O許可位圖的有效部分就有8K字節,I/O許可檢查全部根據全部根據該位圖進行。當TSS的界限不大于I/O許可位圖開始偏移加8K時,I/O許可位圖有效部分就不到8K字節,于是對較小I/O地址訪問的許可檢查根據位圖進行,而對較大I/O地址訪問的許可檢查總被認為不可訪問而引起通用保護故障。因為這時會發生字節越界而引起通用保護異常,所以在這種情況下,可認為不足的I/O許可位圖的高端部分全為1。利用這個特點,可大大節約TSS中I/O許可位圖占用的存儲單元,也就大大減小了TSS段的長度。 <二>重要標志保護輸入輸出的保護與存儲在標志寄存器EFLAGS中的IOPL密切相關,顯然不能允許隨便地改變IOPL,否則就不能有效地實現輸入輸出保護。類似地,對EFLAGS中的IF位也必須加以保護,否則CLI和STI作為敏感指令對待是無意義的。此外,EFLAGS中的VM位決定著處理器是否按虛擬8086方式工作。 80386對EFLAGS中的這三個字段的處理比較特殊,只有在較高特權級執行的程序才能執行IRET、POPF、CLI和STI等指令改變它們。下表列出了不同特權級下對這三個字段的處理情況。 不同特權級對標志寄存器特殊字段的處理 特權級 VM標志字段 IOPL標志字段 IF標志字段 CPL=0 可變(初POPF指令外) 可變 可變 0  不變 不變 可變 CPL>IOPL 不變 不變 不變 從表中可見,只有在特權級0執行的程序才可以修改IOPL位及VM位;只能由相對于IOPL同級或更內層特權級執行的程序才可以修改IF位。與CLI和STI指令不同,在特權級不滿足上述條件的情況下,當執行POPF指令和IRET指令時,如果試圖修改這些字段中的任何一個字段,并不引起異常,但試圖要修改的字段也未被修改,也不給出任何特別的信息。此外,指令POPF總不能改變VM位,而PUSHF指令所壓入的標志中的VM位總為0。 <三>演示輸入輸出保護的實例(實例九)下面給出一個用于演示輸入輸出保護的實例。演示內容包括:I/O許可位圖的作用、I/O敏感指令引起的異常和特權指令引起的異常;使用段間調用指令CALL通過任務門調用任務,實現任務嵌套。 1.演示步驟實例演示的內容比較豐富,具體演示步驟如下:(1)在實模式下做必要準備后,切換到保護模式;(2)進入保護模式的臨時代碼段后,把演示任務的TSS段描述符裝入TR,并設置演示任務的堆棧;(3)進入演示代碼段,演示代碼段的特權級是0;(4)通過任務門調用測試任務1。測試任務1能夠順利進行;(5)通過任務門調用測試任務2。測試任務2演示由于違反I/O許可位圖規定而導致通用保護異常;(6)通過任務門調用測試任務3。測試任務3演示I/O敏感指令如何引起通用保護異常;(7)通過任務門調用測試任務4。測試任務4演示特權指令如何引起通用保護異常;(8)從演示代碼轉臨時代碼,準備返回實模式;(9)返回實模式,并作結束處理。

    標簽: 匯編 保護模式 教程

    上傳時間: 2013-12-11

    上傳用戶:nunnzhy

  • 經典c程序100例==1--10 【程序1】 題目:有1、2、3、4個數字

    經典c程序100例==1--10 【程序1】 題目:有1、2、3、4個數字,能組成多少個互不相同且無重復數字的三位數?都是多少? 1.程序分析:可填在百位、十位、個位的數字都是1、2、3、4。組成所有的排列后再去       掉不滿足條件的排列。 2.程序源代碼: main() { int i,j,k printf("\n") for(i=1 i<5 i++)    /*以下為三重循環*/  for(j=1 j<5 j++)    for (k=1 k<5 k++)    {     if (i!=k&&i!=j&&j!=k)    /*確保i、j、k三位互不相同*/     printf("%d,%d,%d\n",i,j,k)    }

    標簽: 100 程序 10 數字

    上傳時間: 2014-01-07

    上傳用戶:lizhizheng88

  • 求解網絡中的最短路徑。假設某個計算機網絡有n個站點

    求解網絡中的最短路徑。假設某個計算機網絡有n個站點,依次編號為1,2,…,n;有的站點之間有直接的線路連接(即這兩個站點之間沒有其它站點),有的站點之間沒有直接的線路連接。如果用三元組(i,j,f)來表示該網絡中的站點I和站點j之間有直接的線路連接且它們之間的距離為f 當已知該網絡各站點之間的直接連接情況由m個三元組(i1,j1,f1),(i2,j2,f2),…,(im,jm,fm)確定時,要求計算出對于網絡中任意一個站點g(1≤g≤n)到其余各站點的最短距離。

    標簽: 網絡 最短路徑 站點 計算機網絡

    上傳時間: 2013-12-27

    上傳用戶:asdkin

  • 一個使用k路由算法的例子

    一個使用k路由算法的例子,給你的是k路由的DLL,盡管用就是了。

    標簽: 路由算法

    上傳時間: 2014-01-03

    上傳用戶:lyy1234

主站蜘蛛池模板: 湖南省| 察隅县| 东乡县| 班玛县| 通城县| 南昌县| 灵武市| 临城县| 横峰县| 南通市| 蓬安县| 和平区| 沛县| 云梦县| 丹凤县| 鄯善县| 博湖县| 凤庆县| 磐石市| 东莞市| 伊宁市| 浦东新区| 盐源县| 潜山县| 额济纳旗| 朝阳县| 青浦区| 澎湖县| 福贡县| 洪湖市| 东方市| 普定县| 砀山县| 定西市| 平阴县| 上林县| 马龙县| 石林| 宜州市| 巴南区| 德格县|