【文章內(nèi)容簡介】
,只需 設(shè)置相應(yīng)的 I/O 輸出口的 高低 電平 。 而動(dòng)態(tài)顯示 的原理 則 利用了人眼對物體的視覺延遲來達(dá)到所有 LED 的同時(shí)顯示 。 實(shí)際上,在每一個(gè)時(shí)刻,只有一組 LED 是處于顯示的狀態(tài),而其他 LED組均為關(guān)閉狀態(tài) , 即在每一瞬間只 使某一位顯示字符。在此瞬間 , 段選控制 I/O口輸出相應(yīng)字符段選碼 (字型碼 ), 而位選則控制 I/O 口在該顯示相應(yīng)字符。如此基于 CPLD\FPGA 的數(shù)字頻率計(jì)系統(tǒng)的設(shè)計(jì) 第 13 頁 共 40 頁 輪流 , 使每位分時(shí)顯示該位應(yīng)顯示字符 。 根據(jù)人眼視覺特性 , 當(dāng) LED 所加信號(hào)頻率大于 50Hz 時(shí) , 人眼不能感覺其變化 , 所以每位顯示的間隔不能超過 20ms,也就是說要在 20ms 之內(nèi)分時(shí)的點(diǎn)亮所有 LED, LED 越多所分的時(shí)間越短 , 亮度就會(huì)不足 。 如果增加點(diǎn)亮?xí)r間 , 又會(huì)使掃描頻率下降 , 有閃爍感容易造成人眼的彼勞 。 本設(shè)計(jì)采用 共陰極 動(dòng)態(tài)顯示驅(qū)動(dòng)。因?yàn)?CPLD 的 I/O 驅(qū)動(dòng)能力比較強(qiáng),所以可以直接驅(qū)動(dòng)數(shù)碼管,但為了 保護(hù) I/O 口在一個(gè)回路之中串接 100 歐姆的限流電阻。 為了靈活使用 I/O 口,采用了插針方式,硬件上并沒有直接連接上去。 顯示模塊如圖 35 所示 。 圖 35 顯示模塊 基于 CPLD\FPGA 的數(shù)字頻率計(jì)系統(tǒng)的設(shè)計(jì) 第 14 頁 共 40 頁 下載接口電路設(shè)計(jì) MAX II 系列的 CPLD 芯片 支持 JTAG 邊界掃描測試,設(shè)計(jì)人員可以通過下載電纜把程序下載到器件運(yùn)行。每個(gè) I/O 口都可以自己配置。如果設(shè)計(jì)中不需要JTAG 接口,則 JTAG 引腳可作 I/O 引腳來使用,下載電路經(jīng)過計(jì)算機(jī)并口到 JTAG掃描口的轉(zhuǎn)換電路實(shí)現(xiàn)程序的下載。并行下載電纜如圖 36 所示。 圖 36 計(jì)算機(jī)與 PCB 的下載連接示意圖 需要注意的是, JTAG 電路的電源需要由下載的 PCB 板來提供。并口與 JTAG的對應(yīng)關(guān)系如表 31。下載的 ByteBlaster 管腳的定義如表 32。 并口 JTAG EPM240 2 TCK 24 3 TMS 22 8 TDI 23 11 TDO 25 13 NC NC 15 GND NC 18~25 GND NC 表 31 計(jì)算機(jī)與 EPM240 的端口連接表 基于 CPLD\FPGA 的數(shù)字頻率計(jì)系統(tǒng)的設(shè)計(jì) 第 15 頁 共 40 頁 接口 JTAG 相關(guān)描述 1 TCK 時(shí)鐘信號(hào) 10 GND 信號(hào)地 3 TDO 數(shù)據(jù)輸出 4 VCC 電源 5 TMS JTAG 狀態(tài)控制 8 NC 無連接 9 TDI 數(shù)據(jù)輸入 表 32 并口與 JTAG下載線纜端口的對應(yīng)表 拓 展電路的設(shè)計(jì) 基于 EPM240T100 可編程邏輯器件的數(shù)字頻率計(jì)系統(tǒng),還 為大 家提供了一個(gè)硬件學(xué)習(xí)的平臺(tái)。 由于 CPLD 支持反復(fù)編程、在線編程 , 只要下載不同的設(shè)計(jì)程序,就能完成相應(yīng)功能的數(shù)字系統(tǒng)功能,能真正的實(shí)現(xiàn)硬件設(shè)計(jì)軟件化。因此,在完成頻率計(jì)設(shè)計(jì) 的同時(shí) , 考慮到其通用性,我們還做了 其它的拓展設(shè)計(jì),例如字符顯示、 按鍵控制、 數(shù)模 、 模數(shù)轉(zhuǎn)換實(shí)驗(yàn)等等 。 下面將 介紹其中 的部分?jǐn)U展電路。 ADC0804 接口電路設(shè)計(jì) 從模擬信號(hào)到數(shù)字信號(hào)的轉(zhuǎn)換稱為模數(shù)轉(zhuǎn)換,簡稱 A/D(Analog to Digital)轉(zhuǎn)換,與此同時(shí),把實(shí)現(xiàn) A/D 轉(zhuǎn)換的電路稱為 A/D 轉(zhuǎn)換器,簡稱 ADC( Analog to Digital Converter)。 在 A/D 轉(zhuǎn)換中,因?yàn)檩斎氲哪M信號(hào)在時(shí)間上是連續(xù)的,而輸出的數(shù)字信號(hào)是離散量,所以進(jìn)行轉(zhuǎn)換時(shí)只能按一定的時(shí)間間隔對輸入的模擬信號(hào)進(jìn)行采樣,然后再把這些采樣值轉(zhuǎn)換為輸出的數(shù)字量。通常 A/D 轉(zhuǎn)換需要經(jīng)過采樣、保持、量化和編碼四個(gè)步驟。圖 37 是 ADC0804 的外圍電路設(shè)計(jì)。 基于 CPLD\FPGA 的數(shù)字頻率計(jì)系統(tǒng)的設(shè)計(jì) 第 16 頁 共 40 頁 圖 37 ADC0804 外圍電路 ADC0804 是比較常用的 AD 轉(zhuǎn)換芯片,外圍電路也不是很復(fù)雜。轉(zhuǎn)換控制有 CPLD 提供的時(shí)序控制,轉(zhuǎn)換之后的數(shù)據(jù)通過 ADC0~ADC7 的 I/O 口上。由于 ADC0804 輸出電平為 5V TTL 電平, MAX II 系列提供 I/O 設(shè)計(jì)是 ,但是它可以通過串接一個(gè)電阻來平衡電平,所以,不需要電壓轉(zhuǎn)換芯片,為系統(tǒng)設(shè)計(jì)節(jié)約了成本。 DAC0832 接口電路設(shè)計(jì) 從數(shù)字信號(hào)到模擬信號(hào)的轉(zhuǎn)換稱為數(shù)模轉(zhuǎn)換,簡稱 D/A( Digital to Analog)轉(zhuǎn)換,而把實(shí)現(xiàn) D/A 轉(zhuǎn)換的電路稱為 D/A 轉(zhuǎn)換器,簡稱 DAC( Digital to Analog Converter)轉(zhuǎn)換。 DAC0832 是比較常用的 DA 轉(zhuǎn)換器,時(shí)序控制要比 AD 轉(zhuǎn)換器容易很多。這個(gè)電路控制只要使能腳 CS 置低,提供上寫 上寫時(shí)鐘,按照時(shí)鐘寫數(shù)據(jù)就可以輸入相應(yīng)的電流。 DAC0832 為電流輸出型,使用得時(shí)候要注意它的帶負(fù)載能力。 圖 37 為其外圍電路。 基于 CPLD\FPGA 的數(shù)字頻率計(jì)系統(tǒng)的設(shè)計(jì) 第 17 頁 共 40 頁 圖 38 DAC0832 外圍電路 當(dāng) ILE為高電平,片選信號(hào) /CS 和寫信號(hào) /WR1為低電平時(shí),輸入寄存器控制信號(hào)為 1, 這種情況下,輸入寄存器的輸出隨輸入而變化。此后,當(dāng) /WR1由低電平變高時(shí),控制信號(hào)成為低電平,此時(shí),數(shù)據(jù)被鎖存到輸入寄存器中,這樣輸入寄存器的輸出端不再隨外部數(shù)據(jù) DB的變化而變化。對第二級(jí)鎖存來說,傳送控制信號(hào) /XFER 和寫信號(hào) /WR2同時(shí)為低電平時(shí),二級(jí)鎖存控制信號(hào)為高電平, 8位的 DAC寄存器的輸出隨輸入而變化,此后,當(dāng) /WR2由低電平變高時(shí),控制信號(hào)變?yōu)榈碗娖剑谑菍⑤斎爰拇嫫鞯男畔㈡i存到 DAC寄存器中。 基于 CPLD\FPGA 的數(shù)字頻率計(jì)系統(tǒng)的設(shè)計(jì) 第 18 頁 共 40 頁 第四章 數(shù)字頻率計(jì) 系統(tǒng)軟件設(shè)計(jì) 系統(tǒng)軟件設(shè)計(jì) 概述 隨著數(shù)字集成技 術(shù)和計(jì)算機(jī)技術(shù)的迅速發(fā)展,數(shù)字系統(tǒng)設(shè)計(jì)的理論和方法也在不斷地發(fā)展和變化。數(shù)字系統(tǒng)的實(shí)現(xiàn)方法經(jīng)歷了由分立元件、小規(guī)模集成電路( SSI)、中規(guī)模集成電路( MSI)到大規(guī)模集成電路( LSI)、超大規(guī)模集成電路( VLSI)的過程。 而從系統(tǒng)總體出發(fā)來描述和設(shè)計(jì)的方法有多種,常用的有自頂向下 法和自底向上法。 自頂向下法是一種從抽象定義到具體的實(shí)現(xiàn),從高層次到低層次逐步求精的分層次、分模塊的設(shè)計(jì)方法。首先根據(jù)系統(tǒng)的總體功能要求,進(jìn)行系統(tǒng)級(jí)設(shè)計(jì);然后按照一定的的標(biāo)準(zhǔn)將整個(gè)系統(tǒng)劃分成若干個(gè)子系統(tǒng);接著將各個(gè)子系統(tǒng)劃分為若干功 能模塊,針對各模塊進(jìn)行邏輯電路設(shè)計(jì)。 自底向上法是根據(jù)系統(tǒng)功能要求,從具體的器件、邏輯部件或者相似系統(tǒng)開始任借設(shè)計(jì)者熟練的技巧和豐富的經(jīng)驗(yàn)通過尋其進(jìn)行相互連接、修改和擴(kuò)大,構(gòu)成所要求的系統(tǒng)。該方法是從底層設(shè)計(jì)開始的,設(shè)計(jì)者無論是取現(xiàn)成模塊還是自行設(shè)計(jì)電路,其設(shè)計(jì)成本和開發(fā)周期都優(yōu)于自頂向下法;但由于設(shè)計(jì)是從低級(jí)別開始,因此不能保證整體設(shè)計(jì)的最佳性。 經(jīng)對比考慮,本設(shè)計(jì)采用了自頂向下的分層設(shè)計(jì)方法。 Quartus II 簡介 Quartus II 是 Altera 公司的綜合性 PLD 開發(fā)軟件,支持原理 圖、 VHDL、VerilogHDL 以及 AHDL( Altera Hardware Description Language)等多種設(shè)計(jì)輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設(shè)計(jì)輸入到硬件配置的完整 PLD 設(shè)計(jì)流程。 Quartus II 可以在 XP、 Linux 以及 Unix 上使用,除了可以使用 Tcl 腳本完成設(shè)計(jì)流程外,提供了完善的用戶圖形界面設(shè)計(jì)方式。具有運(yùn)行速度快,界面統(tǒng)一,功能集中,易學(xué)易用等特點(diǎn)。 Quartus II 支持 Altera 的 IP 核,包含了 LPM/MegaFunction 宏功能模塊庫,使用 戶可以充分利用成熟的模塊,簡化了設(shè)計(jì)的復(fù)雜性、加快了設(shè)計(jì)速度。對第三方 EDA 工具的良好支持也使用戶可以在設(shè)計(jì)流程的各個(gè)階段使用熟悉的第三放 EDA 工具。 基于 CPLD\FPGA 的數(shù)字頻率計(jì)系統(tǒng)的設(shè)計(jì) 第 19 頁 共 40 頁 此外, Quartus II 通過和 DSP Builder 工具與 Matlab/Simulink 相結(jié)合,可以方便地實(shí)現(xiàn)各種 DSP 應(yīng)用系統(tǒng);支持 Altera 的片上可編程系統(tǒng)( SOPC)開發(fā),集系統(tǒng)級(jí)設(shè)計(jì)、嵌入式軟件開發(fā)、可編程邏輯設(shè)計(jì)于一體,是一種綜合性的開發(fā)平臺(tái)。 Maxplus II 作為 Altera 的上一代 PLD設(shè)計(jì)軟件,由于其出色的易用性而得到了廣泛的應(yīng)用。 目前 Altera 已經(jīng)停止了對 Maxplus II 的更新支持,Quartus II 與之相比不僅僅是支持器件類型的豐富和圖形界面的改變。Altera 在 Quartus II 中包含了許多諸如 SignalTap II、 Chip Editor 和RTL Viewer 的設(shè)計(jì)輔助工具,集成了 SOPC 和 HardCopy 設(shè)計(jì)流程,并且繼承了 Maxplus II 友好的圖形界面及簡便的使用方法。 Altera Quartus II 作為一種可編程邏輯的設(shè)計(jì)環(huán)境 , 由于其強(qiáng)大的設(shè)計(jì)能力和直觀易用的接口,越來越受到數(shù)字系統(tǒng)設(shè)計(jì)者的 歡迎。 Altera 的 Quartus II 可編程邏輯軟件屬于第四代 PLD開發(fā)平臺(tái)。該平臺(tái)支持一個(gè)工作組環(huán)境下的設(shè)計(jì)要求,其中包括支持基于 Inter 的協(xié)作設(shè)計(jì)。 Quartus 平臺(tái)與 Cadence、 ExemplarLogic、 MentorGraphics、 Synopsys和 Synplicity 等 EDA 供應(yīng)商的開發(fā)工具相兼容。改進(jìn)了軟件的 LogicLock模塊設(shè)計(jì)功能,增添了 FastFit 編 譯選項(xiàng),推進(jìn)了網(wǎng)絡(luò)編輯性能,而且提升了調(diào)試能力 , 支持 MAX7000/MAX3000 等乘積項(xiàng)器件 。 Quartus II 的設(shè)計(jì)流程 Altera公司的 Quartus II設(shè)計(jì)軟件提供完整的多平臺(tái)設(shè)計(jì)環(huán)境,能夠直接滿足特定設(shè)計(jì)需要,為可編程芯片系統(tǒng)提供全面的設(shè)計(jì)環(huán)境。 QuartusII軟件含有FPGA和 CPLD設(shè)計(jì)所有階段的解決方案。有關(guān) Quartus II設(shè)計(jì)流程的圖示說明, 可參見 圖 41。 基于 CPLD\FPGA 的數(shù)字頻率計(jì)系統(tǒng)的設(shè)計(jì) 第 20 頁 共 40 頁 編程和配置(P r o g r a m m i n g amp。C o n f i g u r a t i o n ) 功耗分析(P o w e r A n a l y s i s )調(diào)試(D e b u g g i n g )工程更改管(E n g i n e e r i n g C h a n g eM a n a g e m e n t )時(shí)序逼近(T i m i n g C l o s u r e )仿真(S i m u l a t i o n )時(shí)序分析(T i m i n g A n a l y s i s )布局布線(P l a c e amp。 R o u t e )設(shè)計(jì)輸入(D e s i g n E n t r y )綜合(S y n t h e s i s ) 圖 41 Quartus II 設(shè)計(jì)流程圖 Quartus II支持多種設(shè)計(jì)輸入方法 ,即允許用戶使用多種方法描述設(shè)計(jì) ,設(shè)計(jì)輸入方式有 :文本編輯器( Text Editor)、 模塊和符號(hào)編輯器( Block amp。 Symbol Editor) 、 MegaWizard插件管理器。 (1). 創(chuàng)建新工程 Quartus II 有工程的概念 ,所謂工程就是當(dāng)前設(shè)計(jì)的描述、設(shè)置、數(shù)據(jù)以及輸出的集合 Quartus II 會(huì)將這些存儲(chǔ)在不同類型的文件中并置于同一個(gè)文件夾下 .所以在設(shè)計(jì)之前 ,必需創(chuàng)建工程 。 打開 Quartus II 軟件 ,在主界面中執(zhí)行File→ New Project Wizard...命令 ,該框最上的一欄是工程的存放路徑 ; 第二欄作為當(dāng)前工程的名字 ,工程名可以使用任何名字 ,最好使用和頂層設(shè)計(jì)相同的名字 ; 第三欄是頂層設(shè) 計(jì)名 ,該名字必須與頂層文件名字相同 ,如圖 42 所示。 基于 CPLD\FPGA 的數(shù)字頻率計(jì)系統(tǒng)的設(shè)計(jì) 第 21 頁 共 40 頁 圖 42 (2).建立文本編輯文件 在創(chuàng)建好一個(gè)設(shè)計(jì)工程后 ,執(zhí)行菜單 Flie→ New...菜單命令打開新建對話框 ,選中 Device Design File 選項(xiàng)中的 VHDL File 后點(diǎn)擊【 OK】按鈕新建一個(gè)空白的 VHDL 文檔 。 Quartus II 會(huì)自動(dòng)將其命名為 ,這時(shí)執(zhí)行 File→ Save 命令或者使用 Ctrl+S 快捷鍵將其保存 。 工程文件的創(chuàng)建和源文件的輸入完成之后 ,即可用 Quartus II 編譯器對設(shè)計(jì)進(jìn)行編譯 。 選擇菜單命令 Assignments→ Device...,彈出所示的