《FPGA/CPLD應(yīng)用設(shè)計(jì)200例》分上、下兩冊(cè)。上冊(cè)主要介紹FPGA/CPLD可編程控制器在網(wǎng)絡(luò)通信、儀器儀表、工業(yè)控制、遙感遙測、汽車工業(yè)、航天軍工及家用電器等領(lǐng)域的典型應(yīng)用設(shè)計(jì)實(shí)例;下冊(cè)主要介紹產(chǎn)品設(shè)計(jì)開發(fā)技巧、方法與秘訣,常用設(shè)計(jì)、開發(fā)工具及軟件特性,常用芯片的結(jié)構(gòu)特點(diǎn)等內(nèi)容?!禙PGA/CPLD應(yīng)用設(shè)計(jì)200例》共計(jì)典型應(yīng)用設(shè)計(jì)實(shí)例287個(gè)。
FPGA/CPLD應(yīng)用設(shè)計(jì)200例圖片
書名 | FPGA/CPLD應(yīng)用設(shè)計(jì)200例 | 作者 | 張洪潤 孫悅 金美華 |
---|---|---|---|
出版社 | 北京航空航天大學(xué)出版社 | 出版時(shí)間 | 2009 |
《FPGA/CPLD應(yīng)用設(shè)計(jì)200例》是應(yīng)廣大科學(xué)研究人員、工程技術(shù)人員的迫切需求,參照國內(nèi)外1000余項(xiàng)FPGA/CPLD應(yīng)用設(shè)計(jì)成果,從實(shí)用角度出發(fā)編寫的。是一本具有實(shí)用性、啟發(fā)性、信息性的綜合工具書?!禙PGA/CPLD應(yīng)用設(shè)計(jì)200例》共計(jì)典型應(yīng)用設(shè)計(jì)實(shí)例287個(gè),可供科學(xué)研究人員、工程技術(shù)人員、維護(hù)修理人員及大專院校師生在解決現(xiàn)代科研和生產(chǎn)中的許多實(shí)際問題時(shí)參考、借鑒。
上冊(cè)
第1篇FPGA/CPLD典型應(yīng)用設(shè)計(jì)實(shí)例
1.1FFT(快速傅里葉變換)的FPGA設(shè)計(jì)與實(shí)現(xiàn)
1.2數(shù)字式存儲(chǔ)示波器
1.3汽車尾燈控制電路設(shè)計(jì)
1.4數(shù)字鐘電路設(shè)計(jì)
1.5數(shù)字調(diào)制(FSK)信號(hào)發(fā)生器
1.6電子數(shù)字鬧鐘
1.7函數(shù)發(fā)生器設(shè)計(jì)
1.8偽隨機(jī)序列發(fā)生器
1.9多功能點(diǎn)陣牌電路設(shè)計(jì)
1.10光通信PDH的標(biāo)準(zhǔn)偽隨機(jī)圖案發(fā)生器設(shè)計(jì)
1.11數(shù)字秒表
1.12電子密碼鎖
1.13數(shù)字電壓表
1.14自動(dòng)交通控制系統(tǒng)
1.15交通信號(hào)燈控制器
1.16交通控制燈邏輯電路系統(tǒng)設(shè)計(jì)
1.17十字路口交通管理信號(hào)燈系統(tǒng)設(shè)計(jì)
1.18交通燈控制程序設(shè)計(jì)
1.19交通燈電路設(shè)計(jì)
1.20無線通信中的全數(shù)字調(diào)制器設(shè)計(jì)
1.21無線通信中的全數(shù)字解調(diào)器設(shè)計(jì)
1.22采用VHDL語言設(shè)計(jì)的數(shù)字頻率計(jì)
1.23數(shù)字顯示頻率計(jì)
1.24簡易數(shù)字頻率計(jì)設(shè)計(jì)
1.254位數(shù)字頻率計(jì)
1.26采用VerilogHDL語言設(shè)計(jì)的頻率計(jì)
1.27簡易頻率計(jì)電路設(shè)計(jì)
1.28簡易頻率計(jì)設(shè)計(jì)
1.29電子數(shù)字鐘
1.30采用VerilogHDL語言設(shè)計(jì)的電子數(shù)字鐘
1.31采用VHDL語言設(shè)計(jì)的電子數(shù)字鐘
1.32電子時(shí)鐘電路設(shè)計(jì)
1.33計(jì)時(shí)器
1.34波形發(fā)生器電路設(shè)計(jì)
1.35LED數(shù)碼管動(dòng)態(tài)顯示設(shè)計(jì)
1.36流水燈電路設(shè)計(jì)
1.37直流步進(jìn)電機(jī)控制電路設(shè)計(jì)
1.38ADC電壓測量電路設(shè)計(jì)
1.39簡易電子鐘設(shè)計(jì)
1.40數(shù)字搶答器
1.41序列檢測器
1.42UART通用異步串行口設(shè)計(jì)
1.43簡易周期信號(hào)測試儀
1.44序列信號(hào)發(fā)生器
1.45通信、雷達(dá)和遙測用序列檢測器的設(shè)計(jì)
1.46數(shù)字密碼鎖
1.47偽隨機(jī)序列信號(hào)發(fā)生器設(shè)計(jì)
1.48FIFO存儲(chǔ)器的VHDL描述
1.49采用VerilogHDL語言設(shè)計(jì)的UART通用異步收發(fā)器.
1.50倍頻電路
1.51雙向數(shù)據(jù)轉(zhuǎn)換器
1.52鍵盤電路
1.53數(shù)碼LED顯示器
1.54多位加法器電路
1.556位數(shù)碼管動(dòng)態(tài)掃描及譯碼電路
1.56非2的冪次分頻電路
1.57非整數(shù)分頻電路
1.58常用電路的VHDL描述
1.59同步一百進(jìn)制計(jì)數(shù)器的設(shè)計(jì)
1.60門電路設(shè)計(jì)
1.61時(shí)序電路設(shè)計(jì)
1.62組合邏輯電路設(shè)計(jì)
1.63頻率合成技術(shù)--基于FPGA的直接數(shù)字合成器(DDS)設(shè)計(jì)
1.64串行通信MAX232接口電路設(shè)計(jì)
1.652的冪次分頻電路
1.66環(huán)形計(jì)數(shù)器與扭環(huán)形計(jì)數(shù)器
1.678位可逆計(jì)數(shù)器和三角波發(fā)生器
1.68并/串轉(zhuǎn)換器
1.694選1數(shù)據(jù)選擇器
1.704位二進(jìn)制數(shù)/8421BCD碼
1.71移位寄存器設(shè)計(jì)
1.72三進(jìn)制計(jì)數(shù)器設(shè)計(jì)
1.73移位型控制器的設(shè)計(jì)與實(shí)現(xiàn)
1.74存儲(chǔ)器接口電路設(shè)計(jì)
1.754位加法器設(shè)計(jì)
1.76乘法器設(shè)計(jì)
1.77譯碼器設(shè)計(jì)
1.78可變模計(jì)數(shù)器設(shè)計(jì)
1.79整數(shù)增益放大器設(shè)計(jì)與測試
1.80濾波器的設(shè)計(jì)與測試
1.81比較器的設(shè)計(jì)與測試
1.82帶阻有源濾波器設(shè)計(jì)
1.83線性反饋移位寄存器LFSR的FPGA設(shè)計(jì)與實(shí)現(xiàn)
1.84線性分析、循環(huán)碼編碼譯碼器的FPGA設(shè)計(jì)與實(shí)現(xiàn)
1.85數(shù)據(jù)傳輸與I/O接口標(biāo)準(zhǔn)
1.86異步收發(fā)器
1.87有限脈沖響應(yīng)(FIR)數(shù)字濾波器的FPGA設(shè)計(jì)與實(shí)現(xiàn)
1.88逐次逼近型ADC
1.89乘法器的FPGA設(shè)計(jì)與實(shí)現(xiàn)
1.90總線仲裁電路的設(shè)計(jì)
1.91ALU(算術(shù)邏輯部件)設(shè)計(jì)
1.92脈沖分配器設(shè)計(jì)
1.93二進(jìn)制碼/格雷碼的轉(zhuǎn)換
1.94直接序列擴(kuò)頻通信系統(tǒng)設(shè)計(jì)
1.95并/串轉(zhuǎn)換模塊設(shè)計(jì)
1.96移位相加模塊設(shè)計(jì)
1.97時(shí)延環(huán)節(jié)模塊設(shè)計(jì)
1.98多波形發(fā)生器設(shè)計(jì)
1.99三位乘法器設(shè)計(jì)
1.100小信號(hào)測量系統(tǒng)
1.101單片電路設(shè)計(jì)
1.102簡易數(shù)字鎖
1.103交通燈控制器
1.104閃爍燈和流水燈設(shè)計(jì)與仿真
1.1053DES算法的FPGA實(shí)現(xiàn)及其在3DES-PCI安全卡中的應(yīng)用
1.106邊界掃描測試
1.107交通信號(hào)燈
1.108交通燈監(jiān)視電路設(shè)計(jì)
1.109漢字顯示
1.110漢字顯示電路設(shè)計(jì)
1.111洗衣機(jī)控制電路設(shè)計(jì)
1.112籃球30s可控計(jì)時(shí)器設(shè)計(jì)
1.113悅耳的音響設(shè)計(jì)
1.114樂曲演奏電路設(shè)計(jì)
1.115多音階電子琴電路設(shè)計(jì)
1.116《友誼地久天長》樂曲演奏電路設(shè)計(jì)
1.117軟件無線電內(nèi)插濾波器設(shè)計(jì)
1.118量程自動(dòng)轉(zhuǎn)換的數(shù)字式頻率計(jì)
1.119游戲電路設(shè)計(jì)
1.120全自動(dòng)電梯控制電路
1.1218位二進(jìn)制乘法電路
1.122自動(dòng)售郵票機(jī)
參考文獻(xiàn)
下冊(cè)
第2篇FPGA/CPLD產(chǎn)品設(shè)計(jì)、開發(fā)技巧與秘訣
2.1如何根據(jù)項(xiàng)目選擇器件
2.2可編程器件的選擇原則
2.3確定初步方案的方法與技巧
2.4基于可編程邏輯器件的數(shù)字系統(tǒng)的設(shè)計(jì)流程
2.5掌握常用FPGA/CPLD
2.6EDA技術(shù)的基本設(shè)計(jì)方法
2.7數(shù)字系統(tǒng)設(shè)計(jì)中的低功耗設(shè)計(jì)方法
2.8動(dòng)態(tài)可編程重構(gòu)技術(shù)
2.9多級(jí)邏輯的設(shè)計(jì)技巧
2.10VerilogHDL設(shè)計(jì)方法與技巧
2.11FPGA設(shè)計(jì)的穩(wěn)定性探討
2.12同步電路設(shè)計(jì)技巧
2.13圖形設(shè)計(jì)法的實(shí)用技術(shù)
2.14狀態(tài)機(jī)設(shè)計(jì)技巧
2.15存儲(chǔ)器的VHDL實(shí)現(xiàn)方法與技巧
2.16存儲(chǔ)器設(shè)計(jì)典型實(shí)例
2.17只讀存儲(chǔ)器
2.18比較器
2.19多路選擇器
2.20三態(tài)總線
2.21m序列的產(chǎn)生和性質(zhì)
2.22對(duì)具體某一信號(hào)的連續(xù)存儲(chǔ)
2.23典型的時(shí)序邏輯電路分析與描述
2.24用VerilogHDL的時(shí)序邏輯電路設(shè)計(jì)
2.25時(shí)序邏輯電路的設(shè)計(jì)方法與技巧
2.26FPGA/CPLD的設(shè)計(jì)和優(yōu)化
2.27CPLD典型器件ispPAC20的擴(kuò)展應(yīng)用技巧
2.28CPLD典型器件ispPAC的基本應(yīng)用技巧
2.29VerilogHDL設(shè)計(jì)組合邏輯電路技巧
2.30VHDL設(shè)計(jì)組合邏輯電路技巧
2.31LED七段譯碼器的分析與設(shè)計(jì)
2.32電路的仿真技巧
2.33宏器件及其調(diào)用
2.34ispPAC的增益調(diào)整方法
2.35數(shù)字系統(tǒng)的描述方法
2.36FPGA系統(tǒng)設(shè)計(jì)與調(diào)試技巧
2.37典型的下載/配置方式
2.38Xilinx器件的下載
2.39ByteBlaster并口下載電纜
2.40單個(gè)FLEX系列器件的PS配置(下載電纜連接與下載操作)
2.41多個(gè)FLEX器件的PS配置(下載電路連接與下載操作)
2.42單個(gè)MAX器件的JTAG方式編程(POF文件連接與編程)
2.43單個(gè)FLEX器件的JTAG方式配置(SOF文件連接與編程)
2.44多個(gè)MAX/FLEX器件的JTAG方式編程/配置(連接與編程)
2.45主動(dòng)串行與被動(dòng)串行配置模式
2.46門禁系統(tǒng)設(shè)計(jì)技巧
2.47兩種實(shí)際應(yīng)用的計(jì)數(shù)器電路設(shè)計(jì)
2.48常用觸發(fā)器及其應(yīng)用設(shè)計(jì)技巧
2.49加法器設(shè)計(jì)
2.50ispPAC的接口電路設(shè)計(jì)
2.51編程接口和編程--ISP方式和JTAG方式
2.52利用VerilogHDL設(shè)計(jì)狀態(tài)機(jī)的技巧
2.53系統(tǒng)級(jí)層次式設(shè)計(jì)
2.54邊界掃描測試技術(shù)
2.55在系統(tǒng)下載電纜與評(píng)估板
2.56用CPLD和單片機(jī)設(shè)計(jì)電子系統(tǒng)
2.57怎樣優(yōu)化程序
2.58怎樣才能避免潛在的危險(xiǎn)
2.59毛刺的產(chǎn)生及其消除技巧
2.60計(jì)數(shù)器設(shè)計(jì)與FPGA資源
2.61組合邏輯電路的競爭冒險(xiǎn)及其消除技巧
2.62選擇器設(shè)計(jì)和FPGA資源
2.63基于FPGA/CPLD應(yīng)用設(shè)計(jì)的23點(diǎn)經(jīng)驗(yàn)總結(jié)
第3篇FPGA/CPLD常用工具及軟件特性
3.1常用的FPGA開發(fā)工具
3.2常用EDA設(shè)計(jì)工具
3.3FPGA/CPLD數(shù)字邏輯實(shí)驗(yàn)平臺(tái)
3.4軟件資源
3.5典型常用的VerilogHDL語言(應(yīng)用設(shè)計(jì)舉例)
3.6VerilogHDL的一般結(jié)構(gòu)
3.719種常用電路的VerilogHDL描述
3.8典型常用的VHDL語言(應(yīng)用設(shè)計(jì)舉例)
3.910種常用電路的VHDL描述.
第4篇FPGA/CPLD常用芯片結(jié)構(gòu)及特點(diǎn)
4.1FPGA和CPLD的結(jié)構(gòu)性能對(duì)照
4.2FPGA/CPLD的基本結(jié)構(gòu)和原理
4.3Xilinx系列CPLD
4.4Altera系列CPLD
4.5現(xiàn)場可編程系統(tǒng)芯片F(xiàn)PSC
4.6無限可重構(gòu)可編程門陣列ispXPGA
4.7ispXPLD器件
4.8在系統(tǒng)可編程通用數(shù)字開關(guān)ispGDS和互連器件ispGDX/V
4.9在系統(tǒng)可編程模擬器件的原理
4.10各種在系統(tǒng)可編程模擬器件的結(jié)構(gòu)
4.11ispLSI系列器件的性能參數(shù)
4.12ispLSI系列器件的主要技術(shù)特性
4.13ispLSI系列器件的編程方法
4.14成熟器件與新型器件
4.15FPGA/CPLD器件的編程
附錄l現(xiàn)場可編程邏輯器件主流產(chǎn)品一覽
附錄2各種器件的下載電路(在系統(tǒng)可編程ispJTAGTM芯片設(shè)計(jì)指導(dǎo))
附錄3Lattice系統(tǒng)宏(器件庫)
附錄4國內(nèi)外常用二進(jìn)制邏輯元件圖形符號(hào)對(duì)照表
附錄5世界著名的FPGA廠商及商標(biāo)符號(hào)
附錄6實(shí)驗(yàn)開發(fā)板電路原理圖
附錄7常用FPGA的端口資源
附錄8兩種CPLD實(shí)驗(yàn)儀器面板圖及電路圖
附錄9CPLD主要器件引腳圖
附錄10縮略語詞匯表
參考文獻(xiàn)
……
FPGA/CPLD應(yīng)用設(shè)計(jì)200例版權(quán)信息
書名:FPGA/CPLD應(yīng)用設(shè)計(jì)200例
ISBN:9787811243154
開本:16
定價(jià):72.00 元
、單擊“格式|幻燈片設(shè)計(jì)”菜單項(xiàng),打開“幻燈片設(shè)計(jì)”任務(wù)窗格; 2、執(zhí)行下列操作之一: •若要對(duì)所有幻燈片應(yīng)用設(shè)計(jì)模板,請(qǐng)單擊所需模板。 •若要將模板應(yīng)用于單張幻燈片,請(qǐng)選擇“...
求建筑給水減壓閥應(yīng)用設(shè)計(jì)規(guī)程(CECS109 : 2000)
查收
CAXA實(shí)體設(shè)計(jì)CAD應(yīng)用提高30例
這書也很好http://wenku.baidu.com/view/446759e2524de51b7db8.html
格式:pdf
大?。?span id="mi2csym" class="single-tag-height">382KB
頁數(shù): 4頁
評(píng)分: 4.4
Ξ 基于 CPLD/ FPGA 器件參數(shù)化開方電路的設(shè)計(jì)及應(yīng)用 魏佩敏 趙偉強(qiáng) (紹興文理學(xué)院 工學(xué)院 ,浙江 紹興 312000) 摘 要 :討論二進(jìn)制開方運(yùn)算的過程以及利用 CPLD/ FPGA 進(jìn)行開方運(yùn)算硬件電路的設(shè)計(jì)思想和實(shí)現(xiàn)方案 . 關(guān)鍵詞 :二進(jìn)制碼 ;開方 ;CPLD/ FPGA ;H DL 語言 中圖分類號(hào) :TN702 文獻(xiàn)標(biāo)識(shí)碼 :A 文章編號(hào) :1008 - 293X (2005) 10 - 0058 - 04 目前在模擬信號(hào)數(shù)字化處理過程中 ,數(shù)字可編程器件以其性能穩(wěn)定 、處理速度快而得到廣泛應(yīng)用 ,特 別是 EDA 軟件及在線可編程技術(shù)的使用 ,使設(shè)計(jì)的靈活性和設(shè)計(jì)速度大幅度提高 .在 CPLD/ FPGA 的開發(fā) 應(yīng)用中 ,大多數(shù) EDA 軟件都提供加法 、減法 、乘法的設(shè)計(jì)向?qū)?,或提供 LPM宏函
格式:pdf
大?。?span id="e8g4wys" class="single-tag-height">382KB
頁數(shù): 3頁
評(píng)分: 4.8
針對(duì)模擬光端機(jī)傳輸質(zhì)量低、信號(hào)易受環(huán)境干擾而失真、系統(tǒng)性能不穩(wěn)定和電路設(shè)計(jì)復(fù)雜等缺點(diǎn),采用CPLD對(duì)四路數(shù)字光端機(jī)進(jìn)行設(shè)計(jì)。考慮到四路采樣頻率在滿足以上要求的同時(shí),還要通過一路光纖傳輸四路采樣數(shù)據(jù)的情況,提出了并串轉(zhuǎn)換頻率為采樣頻率四倍的策略,實(shí)現(xiàn)了分時(shí)復(fù)用光纖通道。通過實(shí)驗(yàn)和時(shí)序仿真,驗(yàn)證了該系統(tǒng)的正確性和可行性。該系統(tǒng)結(jié)構(gòu)簡單、成本低、性能穩(wěn)定,是未來數(shù)字光端機(jī)行業(yè)發(fā)展的方向。
導(dǎo)讀: 本文討論的四種常用FPGA/CPLD設(shè)計(jì)思想與技巧:乒乓操作、串并轉(zhuǎn)換、流水線操作、數(shù)據(jù)接口同步化,都是FPGA/CPLD邏輯設(shè)計(jì)的內(nèi)在規(guī)律的體現(xiàn),合理地采用這些設(shè)計(jì)思想能在FPGA/CPLD設(shè)計(jì)工作中取得事半功倍的效果。
FPGA(Field-Programmable Gate Array),即現(xiàn)場可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。
FPGA/CPLD的設(shè)計(jì)思想與技巧是一個(gè)非常大的話題,由于篇幅所限,本文僅介紹一些常用的設(shè)計(jì)思想與技巧,希望本文能引起工程師們的注意,如果能有意識(shí)地利用這些原則指導(dǎo)日后的設(shè)計(jì)工作,將取得事半功倍的效果!
1、乒乓操作
“乒乓操作”是一個(gè)常常應(yīng)用于數(shù)據(jù)流控制的處理技巧,典型的乒乓操作方法如圖1所示。
乒乓操作的處理流程為:輸入數(shù)據(jù)流通過“輸入數(shù)據(jù)選擇單元”將數(shù)據(jù)流等時(shí)分配到兩個(gè)數(shù)據(jù)緩沖區(qū),數(shù)據(jù)緩沖模塊可以為任何存儲(chǔ)模塊,比較常用的存儲(chǔ)單元為雙口RAM(DPRAM)、單口RAM(SPRAM)、FIFO等。在第一個(gè)緩沖周期,將輸入的數(shù)據(jù)流緩存到“數(shù)據(jù)緩沖模塊1”;在第2個(gè)緩沖周期,通過“輸入數(shù)據(jù)選擇單元”的切換,將輸入的數(shù)據(jù)流緩存到“數(shù)據(jù)緩沖模塊2”,同時(shí)將“數(shù)據(jù)緩沖模塊1”緩存的第1個(gè)周期數(shù)據(jù)通過“輸入數(shù)據(jù)選擇單元”的選擇,送到“數(shù)據(jù)流運(yùn)算處理模塊”進(jìn)行運(yùn)算處理;在第3個(gè)緩沖周期通過“輸入數(shù)據(jù)選擇單元”的再次切換,將輸入的數(shù)據(jù)流緩存到“數(shù)據(jù)緩沖模塊1”,同時(shí)將“數(shù)據(jù)緩沖模塊2”緩存的第2個(gè)周期的數(shù)據(jù)通過“輸入數(shù)據(jù)選擇單元”切換,送到“數(shù)據(jù)流運(yùn)算處理模塊”進(jìn)行運(yùn)算處理。如此循環(huán)。
乒乓操作的最大特點(diǎn)是通過“輸入數(shù)據(jù)選擇單元”和“輸出數(shù)據(jù)選擇單元”按節(jié)拍、相互配合的切換,將經(jīng)過緩沖的數(shù)據(jù)流沒有停頓地送到“數(shù)據(jù)流運(yùn)算處理模塊”進(jìn)行運(yùn)算與處理。把乒乓操作模塊當(dāng)做一個(gè)整體,站在這個(gè)模塊的兩端看數(shù)據(jù),輸入數(shù)據(jù)流和輸出數(shù)據(jù)流都是連續(xù)不斷的,沒有任何停頓,因此非常適合對(duì)數(shù)據(jù)流進(jìn)行流水線式處理。所以乒乓操作常常應(yīng)用于流水線式算法,完成數(shù)據(jù)的無縫緩沖與處理。
乒乓操作的第二個(gè)優(yōu)點(diǎn)是可以節(jié)約緩沖區(qū)空間。比如在WCDMA基帶應(yīng)用中,1個(gè)幀是由15個(gè)時(shí)隙組成的,有時(shí)需要將1整幀的數(shù)據(jù)延時(shí)一個(gè)時(shí)隙后處理,比較直接的辦法是將這幀數(shù)據(jù)緩存起來,然后延時(shí)1個(gè)時(shí)隙進(jìn)行處理。這時(shí)緩沖區(qū)的長度是1整幀數(shù)據(jù)長,假設(shè)數(shù)據(jù)速率是3.84Mbps,1幀長10ms,則此時(shí)需要緩沖區(qū)長度是38400位。如果采用乒乓操作,只需定義兩個(gè)能緩沖1個(gè)時(shí)隙數(shù)據(jù)的RAM(單口RAM即可)。
當(dāng)向一塊RAM寫數(shù)據(jù)的時(shí)候,從另一塊RAM讀數(shù)據(jù),然后送到處理單元處理,此時(shí)每塊RAM的容量僅需2560位即可,2塊RAM加起來也只有5120位的容量。
另外,巧妙運(yùn)用乒乓操作還可以達(dá)到用低速模塊處理高速數(shù)據(jù)流的效果。如圖2所示,數(shù)據(jù)緩沖模塊采用了雙口RAM,并在DPRAM后引入了一級(jí)數(shù)據(jù)預(yù)處理模塊,這個(gè)數(shù)據(jù)預(yù)處理可以根據(jù)需要的各種數(shù)據(jù)運(yùn)算,比如在WCDMA設(shè)計(jì)中,對(duì)輸入數(shù)據(jù)流的解擴(kuò)、解擾、去旋轉(zhuǎn)等。假設(shè)端口A的輸入數(shù)據(jù)流的速率為100Mbps,乒乓操作的緩沖周期是10ms。以下分析各個(gè)節(jié)點(diǎn)端口的數(shù)據(jù)速率。
A端口處輸入數(shù)據(jù)流速率為100Mbps,在第1個(gè)緩沖周期10ms內(nèi),通過“輸入數(shù)據(jù)選擇單元”,從B1到達(dá)DPRAM1。B1的數(shù)據(jù)速率也是100Mbps,DPRAM1要在10ms內(nèi)寫入1Mb數(shù)據(jù)。同理,在第2個(gè)10ms,數(shù)據(jù)流被切換到DPRAM2,端口B2的數(shù)據(jù)速率也是100Mbps,DPRAM2在第2個(gè)10ms被寫入1Mb數(shù)據(jù)。在第3個(gè)10ms,數(shù)據(jù)流又切換到DPRAM1,DPRAM1被寫入1Mb數(shù)據(jù)。
仔細(xì)分析就會(huì)發(fā)現(xiàn)到第3個(gè)緩沖周期時(shí),留給DPRAM1讀取數(shù)據(jù)并送到“數(shù)據(jù)預(yù)處理模塊1”的時(shí)間一共是20ms。有的工程師困惑于DPRAM1的讀數(shù)時(shí)間為什么是20ms,這個(gè)時(shí)間是這樣得來的:首先,在在第2個(gè)緩沖周期向DPRAM2寫數(shù)據(jù)的10ms內(nèi),DPRAM1可以進(jìn)行讀操作;
在第1個(gè)緩沖周期的第5ms起(絕對(duì)時(shí)間為5ms時(shí)刻),DPRAM1就可以一邊向500K以后的地址寫數(shù)據(jù),一邊從地址0讀數(shù),到達(dá)10ms時(shí),DPRAM1剛好寫完了1Mb數(shù)據(jù),并且讀了500K數(shù)據(jù),這個(gè)緩沖時(shí)間內(nèi)DPRAM1讀了5ms;在第3個(gè)緩沖周期的第5ms起(絕對(duì)時(shí)間為35ms時(shí)刻),同理可以一邊向500K以后的地址寫數(shù)據(jù)一邊從地址0讀數(shù),又讀取了5個(gè)ms,所以截止DPRAM1第一個(gè)周期存入的數(shù)據(jù)被完全覆蓋以前,DPRAM1最多可以讀取20ms時(shí)間,而所需讀取的數(shù)據(jù)為1Mb,所以端口C1的數(shù)據(jù)速率為:1Mb/20ms=50Mbps。因此,“數(shù)據(jù)預(yù)處理模塊1”的最低數(shù)據(jù)吞吐能力也僅僅要求為50Mbps。同理,“數(shù)據(jù)預(yù)處理模塊2”的最低數(shù)據(jù)吞吐能力也僅僅要求為50Mbps。換言之,通過乒乓操作,“數(shù)據(jù)預(yù)處理模塊”的時(shí)序壓力減輕了,所要求的數(shù)據(jù)處理速率僅僅為輸入數(shù)據(jù)速率的1/2。
通過乒乓操作實(shí)現(xiàn)低速模塊處理高速數(shù)據(jù)的實(shí)質(zhì)是:通過DPRAM這種緩存單元實(shí)現(xiàn)了數(shù)據(jù)流的串并轉(zhuǎn)換,并行用“數(shù)據(jù)預(yù)處理模塊1”和“數(shù)據(jù)預(yù)處理模塊2”處理分流的數(shù)據(jù),是面積與速度互換原則的體現(xiàn)!
2、串并轉(zhuǎn)換設(shè)計(jì)技巧
串并轉(zhuǎn)換是FPGA設(shè)計(jì)的一個(gè)重要技巧,它是數(shù)據(jù)流處理的常用手段,也是面積與速度互換思想的直接體現(xiàn)。
串并轉(zhuǎn)換的實(shí)現(xiàn)方法多種多樣,根據(jù)數(shù)據(jù)的排序和數(shù)量的要求,可以選用寄存器、RAM等實(shí)現(xiàn)。前面在乒乓操作的圖例中,就是通過DPRAM實(shí)現(xiàn)了數(shù)據(jù)流的串并轉(zhuǎn)換,而且由于使用了DPRAM,數(shù)據(jù)的緩沖區(qū)可以開得很大,對(duì)于數(shù)量比較小的設(shè)計(jì)可以采用寄存器完成串并轉(zhuǎn)換。如無特殊需求,應(yīng)該用同步時(shí)序設(shè)計(jì)完成串并之間的轉(zhuǎn)換。比如數(shù)據(jù)從串行到并行,數(shù)據(jù)排列順序是高位在前,可以用下面的編碼實(shí)現(xiàn):
prl_temp《={prl_temp,srl_in};
其中,prl_temp是并行輸出緩存寄存器,srl_in是串行數(shù)據(jù)輸入。
對(duì)于排列順序有規(guī)定的串并轉(zhuǎn)換,可以用case語句判斷實(shí)現(xiàn)。對(duì)于復(fù)雜的串并轉(zhuǎn)換,還可以用狀態(tài)機(jī)實(shí)現(xiàn)。串并轉(zhuǎn)換的方法比較簡單,在此不必贅述。
3、流水線操作設(shè)計(jì)思想
首先需要聲明的是,這里所講述的流水線是指一種處理流程和順序操作的設(shè)計(jì)思想,并非FPGA、ASIC設(shè)計(jì)中優(yōu)化時(shí)序所用的“Pipelining”。
流水線處理是高速設(shè)計(jì)中的一個(gè)常用設(shè)計(jì)手段。如果某個(gè)設(shè)計(jì)的處理流程分為若干步驟,而且整個(gè)數(shù)據(jù)處理是“單流向”的,即沒有反饋或者迭代運(yùn)算,前一個(gè)步驟的輸出是下一個(gè)步驟的輸入,則可以考慮采用流水線設(shè)計(jì)方法來提高系統(tǒng)的工作頻率。
流水線設(shè)計(jì)的結(jié)構(gòu)示意圖如圖3所示。其基本結(jié)構(gòu)為:將適當(dāng)劃分的n個(gè)操作步驟單流向串聯(lián)起來。流水線操作的最大特點(diǎn)和要求是,數(shù)據(jù)流在各個(gè)步驟的處理從時(shí)間上看是連續(xù)的,如果將每個(gè)操作步驟簡化假設(shè)為通過一個(gè)D觸發(fā)器(就是用寄存器打一個(gè)節(jié)拍),那么流水線操作就類似一個(gè)移位寄存器組,數(shù)據(jù)流依次流經(jīng)D觸發(fā)器,完成每個(gè)步驟的操作。流水線設(shè)計(jì)時(shí)序如圖4所示。
流水線設(shè)計(jì)的一個(gè)關(guān)鍵在于整個(gè)設(shè)計(jì)時(shí)序的合理安排,要求每個(gè)操作步驟的劃分合理。如果前級(jí)操作時(shí)間恰好等于后級(jí)的操作時(shí)間,設(shè)計(jì)最為簡單,前級(jí)的輸出直接匯入后級(jí)的輸入即可;如果前級(jí)操作時(shí)間大于后級(jí)的操作時(shí)間,則需要對(duì)前級(jí)的輸出數(shù)據(jù)適當(dāng)緩存才能匯入到后級(jí)輸入端;如果前級(jí)操作時(shí)間恰好小于后級(jí)的操作時(shí)間,則必須通過復(fù)制邏輯,將數(shù)據(jù)流分流,或者在前級(jí)對(duì)數(shù)據(jù)采用存儲(chǔ)、后處理方式,否則會(huì)造成后級(jí)數(shù)據(jù)溢出。
在WCDMA設(shè)計(jì)中經(jīng)常使用到流水線處理的方法,如RAKE接收機(jī)、搜索器、前導(dǎo)捕獲等。流水線處理方式之所以頻率較高,是因?yàn)閺?fù)制了處理模塊,它是面積換取速度思想的又一種具體體現(xiàn)。
4、數(shù)據(jù)接口的同步方法
數(shù)據(jù)接口的同步是FPGA/CPLD設(shè)計(jì)的一個(gè)常見問題,也是一個(gè)重點(diǎn)和難點(diǎn),很多設(shè)計(jì)不穩(wěn)定都是源于數(shù)據(jù)接口的同步有問題。
在電路圖設(shè)計(jì)階段,一些工程師手工加入BUFT或者非門調(diào)整數(shù)據(jù)延遲,從而保證本級(jí)模塊的時(shí)鐘對(duì)上級(jí)模塊數(shù)據(jù)的建立、保持時(shí)間要求。還有一些工程師為了有穩(wěn)定的采樣,生成了很多相差90度的時(shí)鐘信號(hào),時(shí)而用正沿打一下數(shù)據(jù),時(shí)而用負(fù)沿打一下數(shù)據(jù),用以調(diào)整數(shù)據(jù)的采樣位置。這兩種做法都十分不可取,因?yàn)橐坏┬酒聯(lián)Q代或者移植到其它芯片組的芯片上,采樣實(shí)現(xiàn)必須從新設(shè)計(jì)。而且,這兩種做法造成電路實(shí)現(xiàn)的余量不夠,一旦外界條件變換(比如溫度升高),采樣時(shí)序就有可能完全紊亂,造成電路癱瘓。
下面簡單介紹幾種不同情況下數(shù)據(jù)接口的同步方法:
1. 輸入、輸出的延時(shí)(芯片間、PCB布線、一些驅(qū)動(dòng)接口元件的延時(shí)等)不可測,或者有可能變動(dòng)的條件下,如何完成數(shù)據(jù)同步?
對(duì)于數(shù)據(jù)的延遲不可測或變動(dòng),就需要建立同步機(jī)制,可以用一個(gè)同步使能或同步指示信號(hào)。另外,使數(shù)據(jù)通過RAM或者FIFO的存取,也可以達(dá)到數(shù)據(jù)同步目的。
把數(shù)據(jù)存放在RAM或FIFO的方法如下:將上級(jí)芯片提供的數(shù)據(jù)隨路時(shí)鐘作為寫信號(hào),將數(shù)據(jù)寫入RAM或者FIFO,然后使用本級(jí)的采樣時(shí)鐘(一般是數(shù)據(jù)處理的主時(shí)鐘)將數(shù)據(jù)讀出來即可。這種做法的關(guān)鍵是數(shù)據(jù)寫入RAM或者FIFO要可靠,如果使用同步RAM或者FIFO,就要求應(yīng)該有一個(gè)與數(shù)據(jù)相對(duì)延遲關(guān)系固定的隨路指示信號(hào),這個(gè)信號(hào)可以是數(shù)據(jù)的有效指示,也可以是上級(jí)模塊將數(shù)據(jù)打出來的時(shí)鐘。對(duì)于慢速數(shù)據(jù),也可以采樣異步RAM或者FIFO,但是不推薦這種做法。
數(shù)據(jù)是有固定格式安排的,很多重要信息在數(shù)據(jù)的起始位置,這種情況在通信系統(tǒng)中非常普遍。通訊系統(tǒng)中,很多數(shù)據(jù)是按照“幀”組織的。而由于整個(gè)系統(tǒng)對(duì)時(shí)鐘要求很高,常常專門設(shè)計(jì)一塊時(shí)鐘板完成高精度時(shí)鐘的產(chǎn)生與驅(qū)動(dòng)。而數(shù)據(jù)又是有起始位置的,如何完成數(shù)據(jù)的同步,并發(fā)現(xiàn)數(shù)據(jù)的“頭”呢?
數(shù)據(jù)的同步方法完全可以采用上面的方法,采用同步指示信號(hào),或者使用RAM、FIFO緩存一下。
找到數(shù)據(jù)頭的方法有兩種,第一種很簡單,隨路傳輸一個(gè)數(shù)據(jù)起始位置的指示信號(hào)即可,對(duì)于有些系統(tǒng),特別是異步系統(tǒng),則常常在數(shù)據(jù)中插入一段同步碼(比如訓(xùn)練序列),接收端通過狀態(tài)機(jī)檢測到同步碼后就能發(fā)現(xiàn)數(shù)據(jù)的“頭”了,這種做法叫做“盲檢測”。
上級(jí)數(shù)據(jù)和本級(jí)時(shí)鐘是異步的,也就是說上級(jí)芯片或模塊和本級(jí)芯片或模塊的時(shí)鐘是異步時(shí)鐘域的。
前面在輸入數(shù)據(jù)同步化中已經(jīng)簡單介紹了一個(gè)原則:如果輸入數(shù)據(jù)的節(jié)拍和本級(jí)芯片的處理時(shí)鐘同頻,可以直接用本級(jí)芯片的主時(shí)鐘對(duì)輸入數(shù)據(jù)寄存器采樣,完成輸入數(shù)據(jù)的同步化;如果輸入數(shù)據(jù)和本級(jí)芯片的處理時(shí)鐘是異步的,特別是頻率不匹配的時(shí)候,則只有用處理時(shí)鐘對(duì)輸入數(shù)據(jù)做兩次寄存器采樣,才能完成輸入數(shù)據(jù)的同步化。需要說明的是,用寄存器對(duì)異步時(shí)鐘域的數(shù)據(jù)進(jìn)行兩次采樣,其作用是有效防止亞穩(wěn)態(tài)(數(shù)據(jù)狀態(tài)不穩(wěn)定)的傳播,使后級(jí)電路處理的數(shù)據(jù)都是有效電平。但是這種做法并不能保證兩級(jí)寄存器采樣后的數(shù)據(jù)是正確的電平,這種方式處理一般都會(huì)產(chǎn)生一定數(shù)量的錯(cuò)誤電平數(shù)據(jù)。所以僅僅適用于對(duì)少量錯(cuò)誤不敏感的功能單元。
為了避免異步時(shí)鐘域產(chǎn)生錯(cuò)誤的采樣電平,一般使用RAM、FIFO緩存的方法完成異步時(shí)鐘域的數(shù)據(jù)轉(zhuǎn)換。最常用的緩存單元是DPRAM,在輸入端口使用上級(jí)時(shí)鐘寫數(shù)據(jù),在輸出端口使用本級(jí)時(shí)鐘讀數(shù)據(jù),這樣就非常方便的完成了異步時(shí)鐘域之間的數(shù)據(jù)交換。
2. 設(shè)計(jì)數(shù)據(jù)接口同步是否需要添加約束?
建議最好添加適當(dāng)?shù)募s束,特別是對(duì)于高速設(shè)計(jì),一定要對(duì)周期、建立、保持時(shí)間等添加相應(yīng)的約束。
這里附加約束的作用有兩點(diǎn):
a. 提高設(shè)計(jì)的工作頻率,滿足接口數(shù)據(jù)同步要求。通過附加周期、建立時(shí)間、保持時(shí)間等約束可以控制邏輯的綜合、映射、布局和布線,以減小邏輯和布線延時(shí),從而提高工作頻率,滿足接口數(shù)據(jù)同步要求。
b. 獲得正確的時(shí)序分析報(bào)告。幾乎所有的FPGA設(shè)計(jì)平臺(tái)都包含靜態(tài)時(shí)序分析工具,利用這類工具可以獲得映射或布局布線后的時(shí)序分析報(bào)告,從而對(duì)設(shè)計(jì)的性能做出評(píng)估。靜態(tài)時(shí)序分析工具以約束作為判斷時(shí)序是否滿足設(shè)計(jì)要求的標(biāo)準(zhǔn),因此要求設(shè)計(jì)者正確輸入約束,以便靜態(tài)時(shí)序分析工具輸出正確的時(shí)序分析報(bào)告。
Xilinx和數(shù)據(jù)接口相關(guān)的常用約束有Period、OFFSET_IN_BEFORE、OFFSET_IN_AFTER、OFFSET_OUT_BEFORE和OFFSET_OUT_AFTER等;Altera與數(shù)據(jù)接口相關(guān)的常用約束有Period、tsu、tH、tco等。
內(nèi)容簡介
CPLD/FPGA是目前應(yīng)用最為廣泛的兩種可編程專用集成電路(ASIC),特別適合于產(chǎn)品的樣品開發(fā)與小批量生產(chǎn)。本書從現(xiàn)代電子系統(tǒng)設(shè)計(jì)的角度出發(fā),以全球著名的可編程邏輯器件供應(yīng)商Xilinx公司的產(chǎn)品為背景,系統(tǒng)全面地介紹該公司的CPLD/FPGA產(chǎn)品的結(jié)構(gòu)原理、性能特點(diǎn)、設(shè)計(jì)方法以及相應(yīng)的EDA工具軟件,重點(diǎn)介紹CPLD/FPGA在數(shù)字系統(tǒng)設(shè)計(jì)、數(shù)字通信與數(shù)字信號(hào)處理等領(lǐng)域中的應(yīng)用。本書內(nèi)容新穎
目錄
第1章 可編程ASIC與EDA技術(shù)
第2章 Xilinx CPLD系列器件
第3章 Xilinx FPGA系列器件
第4章 CPLD/FPGA的邊界掃描測試
第5章 Xilinx Foundation應(yīng)用基礎(chǔ)
第6章 Foundation高級(jí)應(yīng)用
第7章 VHDL語言簡介
第8章 CPLD/FPGA在數(shù)字系統(tǒng)設(shè)計(jì)中的應(yīng)用
第9章 CPLD/FPGA在通信領(lǐng)域的應(yīng)用
第10章 CPLD/FPGA在DSP領(lǐng)域的應(yīng)用
第11章 CPLD/FPGA在微機(jī)系統(tǒng)領(lǐng)域的應(yīng)用
附錄 GW48型EDA實(shí)驗(yàn)開發(fā)系統(tǒng)使用介紹
參考文獻(xiàn)
下載鏈接:
本書配有光盤一張,包含了全書所有實(shí)例的硬件原理圖和程序源代碼,方便讀者學(xué)習(xí)和使用。本書適合計(jì)算機(jī)、自動(dòng)化、電子及硬件等相關(guān)專業(yè)的學(xué)生,以及從事CPLD/FPGA開發(fā)的科研人員使用。