freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于fpga的數(shù)字通信實(shí)現(xiàn)多路數(shù)據(jù)時分復(fù)用和解復(fù)用系統(tǒng)系統(tǒng)-文庫吧

2025-01-03 14:59 本頁面


【正文】 圖310 FPGA設(shè)計流程下面分別介紹各個設(shè)計步驟。 設(shè)計輸入設(shè)計輸入包括使用硬件描述語言HDL、狀態(tài)圖與原理圖輸入三種方式。HDL設(shè)計方式是現(xiàn)今設(shè)計大規(guī)模數(shù)字集成電路的良好形式,除IEEE標(biāo)準(zhǔn)中VHDL與Verilog HDL兩種形式外,尚有各自FPGA廠家推出的專用語言,如Quartus下的AHDL。HDL語言描述在狀態(tài)機(jī)、控制邏輯、總線功能方面較強(qiáng),使其描述的電路能特定綜合器(如Synopsys公司的FPGA Compiler II或FPGA Express)作用下以具體硬件單元較好地實(shí)現(xiàn);而原理圖輸入在頂層設(shè)計、數(shù)據(jù)通路邏輯、手工最優(yōu)化電路等方面具有圖形化強(qiáng)、單元節(jié)儉、功能明確等特點(diǎn),另外,在Altera公司Quartus軟件環(huán)境下,可以使用Momory Editor對內(nèi)部memory進(jìn)行直接編輯置入數(shù)據(jù)。常用方式是以HDL語言為主,原理圖為輔,進(jìn)行混合設(shè)計以發(fā)揮二者各自特色。通常,F(xiàn)PGA廠商軟件與第三方軟件設(shè)有接口,可以把第三方設(shè)計文件導(dǎo)入進(jìn)行處理。如Quartus與Foundation都可以把EDIF網(wǎng)表作為輸入網(wǎng)表而直接進(jìn)行布局布線,布局布線后,可再將生成的相應(yīng)文件交給第三方進(jìn)行后續(xù)處理。 設(shè)計綜合綜合,就是針對給定的電路實(shí)現(xiàn)功能和實(shí)現(xiàn)此電路的約束條件,如速度、功耗、成本及電路類型等,通過計算機(jī)進(jìn)行優(yōu)化處理,獲得一個能滿足上述要求的電路設(shè)計方案。也就是是說,被綜合的文件是HDL文件(或相應(yīng)文件等),綜合的依據(jù)是邏輯設(shè)計的描述和各種約束條件,綜合的結(jié)果則是一個硬件電路的實(shí)現(xiàn)方案,該方案必須同時滿足預(yù)期的功能和約束條件。對于綜合來說,滿足要求的方案可能有多個,綜合器將產(chǎn)生一個最優(yōu)的或接近最優(yōu)的結(jié)果。因此,綜合的過程也就是設(shè)計目標(biāo)的優(yōu)化過程,最后獲得的結(jié)構(gòu)與綜合器的工作性能有關(guān)。 仿真驗(yàn)證從廣義上講,設(shè)計驗(yàn)證包括功能與時序仿真和電路驗(yàn)證。仿真是指使用設(shè)計軟件包對已實(shí)現(xiàn)的設(shè)計進(jìn)行完整測試,模擬實(shí)際物理環(huán)境下的工作情況。前仿真是指僅對邏輯功能進(jìn)行測試模擬,以了解其實(shí)現(xiàn)的功能否滿足原設(shè)計的要求,仿真過程沒有加入時序信息,不涉及具體器件的硬件特性,如延時特性;而在布局布線后,提取有關(guān)的器件延遲、連線延時等時序參數(shù),并在此基礎(chǔ)上進(jìn)行的仿真稱為后仿真,它是接近真實(shí)器件運(yùn)行的仿真。 設(shè)計實(shí)現(xiàn)實(shí)現(xiàn)可理解為利用實(shí)現(xiàn)工具把邏輯映射到目標(biāo)器件結(jié)構(gòu)的資源中,決定邏輯的最佳布局,選擇邏輯與輸入輸出功能連接的布線通道進(jìn)行連線,并產(chǎn)生相應(yīng)文件(如配置文件與相關(guān)報告)。通??煞譃槿缦挛鍌€步驟:(1)轉(zhuǎn)換:將多個設(shè)計文件進(jìn)行轉(zhuǎn)換并合并到一個設(shè)計庫文件中。(2)映射:將網(wǎng)表中邏輯門映射成物理元素,即把邏輯設(shè)計分割到構(gòu)成可編程邏輯陣列內(nèi)的可配置邏輯塊與輸入輸出塊及其它資源中的過程。 (3)布局與布線:布局是指從映射取出定義的邏輯和輸入輸出塊,并把它們分配到FPGA內(nèi)部的物理位置,通?;谀撤N先進(jìn)的算法,如最小分割、模擬退火和一般的受力方向張弛等來完成;布線是指利用自動布線軟件使用布線資源選擇路徑試著完成所有的邏輯連接。因最新的設(shè)計實(shí)現(xiàn)工具是時序驅(qū)動的,即在器件的布局布線期間對整個信號通道執(zhí)行時序分析,因此可以使用約束條件操作布線軟件,完成設(shè)計規(guī)定的性能要求。在布局布線過程中,可同時提取時序信息形成報靠。(4)時序提?。寒a(chǎn)生一反標(biāo)文件,供給后續(xù)的時序仿真使用。(5)配置:產(chǎn)生FPGA配置時的需要的位流文件。在實(shí)現(xiàn)過程中可以進(jìn)行選項(xiàng)設(shè)置。因其支持增量設(shè)計,可以使其重復(fù)多次布線,且每次布線利用上一次布線信息以使布線更優(yōu)或達(dá)到設(shè)計目標(biāo)。在實(shí)現(xiàn)過程中應(yīng)設(shè)置默認(rèn)配置的下載形式,以使后續(xù)位流下載正常。 時序分析在設(shè)計實(shí)現(xiàn)過程中,在映射后需要對一個設(shè)計的實(shí)際功能塊的延時和估計的布線延時進(jìn)行時序分析;而在布局布線后,也要對實(shí)際布局布線的功能塊延時和實(shí)際布線延時進(jìn)行靜態(tài)時序分析。從某種程序來講,靜態(tài)時序分析可以說是整個FPGA設(shè)計中最重要的步驟,它允許設(shè)計者詳盡地分析所有關(guān)鍵路徑并得出一個有次序的報告,而且報告中含有其它調(diào)試信息,比如每個網(wǎng)絡(luò)節(jié)點(diǎn)的扇出或容性負(fù)載等。靜態(tài)時序分析器可以用來檢查設(shè)計的邏輯和時序,以便計算各通中性能,識別可靠的蹤跡,檢測建立和保持時間的配合,時序分析器不要求用戶產(chǎn)生輸入激勵或測試矢量。雖然Xilinx與Altera在FPGA開發(fā)套件上擁有時序分析工具,但在擁有第三方專門時序分析工具的情況下,僅利用FPGA廠家設(shè)計工具進(jìn)行布局布線,而使用第三方的專門時序分析工具進(jìn)行時序分析,一般FPGA廠商在其設(shè)計環(huán)境下皆有與第三方時序分析工具的接口。Synopsys公司的PrimeTime是一個很好的時序分析工具,利用它可以達(dá)到更好的效果。將綜合后的網(wǎng)表文件保存為db格式,可在PrimeTime環(huán)境下打開。利用此軟件查看關(guān)鍵路徑或設(shè)計者感興趣的通路的時序,并對其進(jìn)行分析,再次對原來的設(shè)計進(jìn)行時序結(jié)束,可以提高工作主頻或減少關(guān)鍵路徑的延時。與綜合過程相似,靜態(tài)時序分析也是一個重復(fù)的過程,它與布局布線步驟緊密相連,這個操作通常要進(jìn)行多次直到時序約束得到很好的滿足。在綜合與時序仿真過程中交互使用PrimeTime進(jìn)行時序分析,滿足設(shè)計要求后即可進(jìn)行FPGA芯片投片前的最終物理驗(yàn)證。 下載驗(yàn)證下載是在功能仿真與時序仿真正確的前提下,將綜合后形成的位流下載到具體的FPGA芯片中,也叫芯片配置。FPGA設(shè)計有兩種配置形式:直接由計算機(jī)經(jīng)過專用下載電纜進(jìn)行配置;由外圍配置芯片進(jìn)行上電時自動配置。因FPGA具有掉電信息丟失的性質(zhì),因此可在驗(yàn)證初期使用電纜直接下載位流,如有必要再將燒錄配置芯片中(如Xilinx的XC18V系列,Altera的EPC2系列)。使用電纜下載時有多種直載方式,如對Xilinx公司的FPGA下載可以使用JTAG Programmer、Hardware Programmer、PROM Programmer三種方式,而對Altera公司的FPGA可以選擇JTAG方式或Passive Serial方式。因FPGA大多支持IEEE的JTAG標(biāo)準(zhǔn),所以使用芯片上的JTAG口是常用下載方式。將位流文件下載到FPGA器件內(nèi)部后進(jìn)行實(shí)際器件的物理測試即為電路驗(yàn)證,當(dāng)?shù)玫秸_的驗(yàn)證結(jié)果后就證明了設(shè)計的正確性。電路驗(yàn)證對FPGA投片生產(chǎn)具有較大意義。下面將根據(jù)FPGA的設(shè)計流程來進(jìn)行本設(shè)計。 發(fā)端FPGA設(shè)計在原理圖做好之后。就可以設(shè)計FPGA了。我所使用的設(shè)計軟件是Altera 的QuartusII,所使用的FPGA是Altera的FLEX10K10。首先,根據(jù)發(fā)端FPGA所要完成的功能將設(shè)計分為三個子模塊。它們是系統(tǒng)分頻模塊、復(fù)接模塊和顯示模塊。設(shè)計細(xì)分如圖311:如圖311 發(fā)端FPGA設(shè)計細(xì)分發(fā)端采用同步設(shè)計,所有觸發(fā)器均使用系統(tǒng)時鐘,分頻模塊輸出全部接到觸發(fā)器的使能端。這樣的設(shè)計可以避免使用行波時鐘。行波時鐘不能被時序分析器分析,將被排除出時序邏輯。行波時鐘還會使后續(xù)電路產(chǎn)生亞穩(wěn)態(tài)。因此應(yīng)盡量避免使用行波時鐘。發(fā)端頂層如圖312所示,圖312 發(fā)端FPGA頂層下面將介紹各模塊的作用。 分頻模塊,生成其它模塊所需要的時鐘,并將這些時鐘接到系統(tǒng)觸發(fā)器的使能端。在設(shè)計中,分頻模塊輸出有“CLK_DIV_50P”、“EN”和“EN_SCAN” 。其中,“CLK_DIV_50P”用來作為串行A/D的控制信號,“EN”是時鐘頻率為256KHz的窄脈沖時鐘信號,它用來作復(fù)接時鐘?!癊N_SCAN”是用來做LED掃描控制的方波時鐘,頻率是32Hz。圖313是分頻器的寄存器傳輸級電路圖,圖313 分頻器傳輸級電路圖分頻模塊的設(shè)計思想實(shí)現(xiàn)計數(shù)器。計數(shù)器實(shí)現(xiàn)循環(huán)計數(shù),當(dāng)達(dá)到某個計數(shù)值時,相應(yīng)輸出寄存器改變邏輯狀態(tài)。模塊中的計數(shù)器有counter_q和counter1_q。當(dāng)counter_q計滿時自動歸零,EN輸出變?yōu)椤?”,否則,EN為“0”。當(dāng)counter1_q計滿數(shù)時,自動歸零,EN_SCAN變?yōu)椤?”,否則EN_SCAN為“0”。CLK_DIV_50P的頻率與EN相同,不同的是CLK_DIV_50P是方波,而EN是窄脈沖。 復(fù)接模塊復(fù)接模塊的作用是時分復(fù)用三路數(shù)據(jù)碼、插入幀同步碼。此模塊還有一個作用是控制串行A/D工作。復(fù)接模塊的寄存器傳輸級電路圖如圖314,圖314 復(fù)接模塊寄存器傳輸級電路圖復(fù)接模塊的核心也是自歸零計數(shù)器。每一個輸出都是在相對應(yīng)的計數(shù)值下完成的,每一次串行A/D的控制是在計數(shù)器達(dá)到某些計數(shù)值時完成。因此,可以將計數(shù)器看成是復(fù)接模塊的控制中心。復(fù)用過程由模32定時計數(shù)器控制。當(dāng)計數(shù)值在0~7時,串行輸出幀同步碼;計數(shù)值在8~15時,給A/D送CS控制信號和位時鐘信號,將串行A/D的數(shù)據(jù)鎖存并輸出,同時給顯示模塊送控制信號和鎖存后的A/D數(shù)據(jù);計數(shù)值在16~23時,串行輸出第二路碼;計數(shù)值在24~31時,串行輸出第三路碼。幀同步碼是11110010,它作為幀頭,其后跟著三路數(shù)據(jù)碼。 顯示模塊顯示模塊用來將模擬信號的電壓顯示出來。它由分頻模塊和復(fù)接模塊共同控制。顯示模塊又分為三個子模塊:乘法模塊、二進(jìn)制到BCD轉(zhuǎn)換模塊和顯示掃描模塊。顯示模塊頂層如圖315圖315 顯示模塊頂層乘法模塊作用是根據(jù)8位A/D轉(zhuǎn)換標(biāo)度,一共256個量化值,值與值之間的步長是5/256≈,A/。乘法模塊的電路圖如圖316,圖316 乘法模塊電路圖二進(jìn)制到BCD轉(zhuǎn)換模塊對乘法模塊產(chǎn)生的16位數(shù)據(jù)進(jìn)行減法運(yùn)算,對相應(yīng)的寄存器進(jìn)行累加運(yùn)算,加法的最終結(jié)果就是BCD碼。此BCD碼的表示范圍是0~99999。因此A/。相比之下,另一種轉(zhuǎn)換方法是查表法。查表法是將范圍內(nèi)的所有二進(jìn)制數(shù)的BCD碼一一列舉出來,二進(jìn)制數(shù)相當(dāng)于地址,而BCD數(shù)就是地址中的內(nèi)容。這兩種方法各有千秋。查表法速度快,只需要一個時鐘周期時間,但是程序冗長,編寫工作量大,同時占用大量的FPGA資源,是典型的面積換速度;計算法速度慢,數(shù)值越大,轉(zhuǎn)換時間越長。但程序簡潔易懂,不占用太多資源。對于此設(shè)計系統(tǒng),計算速度已經(jīng)不是問題了,而電路面積是要考慮的。因此,我選擇應(yīng)用計算法。二進(jìn)制轉(zhuǎn)換為BCD碼的算法圖見圖317,圖317 二進(jìn)制轉(zhuǎn)換為BCD碼的算法圖見輸入的二進(jìn)制數(shù)不會超過萬位。先將它與10000比較。如果大于或等于10000,則將其減去10000并對寄存器組BCD_OUT[19:16]加一。每做一次這樣的運(yùn)算需要一個時鐘周期。如此循環(huán)直到二進(jìn)制數(shù)字小于一萬。之后,將二進(jìn)制數(shù)與1000比較,過程與前面相同,累加的寄存器組為BCD_OUT[15:12]。依此類推,直到二進(jìn)制數(shù)減為零。這時的寄存器組BCD_OUT[19:0]的數(shù)值就是轉(zhuǎn)換后的BCD值。此值被輸出到顯示掃描模塊。顯示掃描模塊用來按時隙依次輸出四位BCD碼。由于設(shè)計一共用到5個LED七段譯碼管,因此控制字為5位,用來分時控制五個PNP三極管導(dǎo)通。在每個三極管導(dǎo)通時,將對應(yīng)的四位BCD碼送出到74LS47譯碼。控制字采用低電平有效,通過一個5位的循環(huán)移位寄存器來控制。顯示掃描模塊的電路圖如圖318,圖318 顯示掃描模塊的電路圖 編譯與仿真整個發(fā)端的FPGA就是由這些模塊組成的。設(shè)計結(jié)束后將代碼進(jìn)行編譯。Quartus II中的編譯是整合式的,它將代碼編譯、芯片適配、布局布線和時間分析在一個工具中一并完成了,相當(dāng)于完成了一次設(shè)計迭代。這使得功能仿真和時序仿真可以出現(xiàn)在綜合和實(shí)現(xiàn)之后,有時功能仿真就變得不是那么重要了,而是直接進(jìn)行時序仿真。這樣可以節(jié)省很多時間。發(fā)端FPGA的實(shí)現(xiàn)結(jié)果如下:++。 Fitter Summary 。+++。 Fitter Status 。 Successful Tue May 17 12:55:07 2005 。 Quartus II Version 。 Build 157 12/07/2004 SJ Full Version 。 Revision Name 。 trans_top 。 Toplevel Entity Name 。 trans_top 。 Family 。 FLEX10K 。 Device 。 EPF10K10LC844 。 Timing Models 。 Final 。 Total logic elements 。 404 / 576 ( 70 % ) 。 Total pins 。 31 / 59 ( 52 % ) 。 Total memory bits 。 0 / 6,144 ( 0 % ) 。+++一旦編譯成功,就可以進(jìn)入仿真階段了。由于設(shè)計的層次不復(fù)雜,模塊不多。因此直接在頂層進(jìn)行時序仿真。仿真時序圖如圖319圖319 仿真時序圖這個時序圖描述了發(fā)端FPGA的工作情況。EN是256KHz的窄脈
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)教案相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1