基于fpga的頻率計(jì)設(shè)計(jì)及fpga的lcd顯示控制系統(tǒng)的設(shè)計(jì)_第1頁(yè)
基于fpga的頻率計(jì)設(shè)計(jì)及fpga的lcd顯示控制系統(tǒng)的設(shè)計(jì)_第2頁(yè)
基于fpga的頻率計(jì)設(shè)計(jì)及fpga的lcd顯示控制系統(tǒng)的設(shè)計(jì)_第3頁(yè)
基于fpga的頻率計(jì)設(shè)計(jì)及fpga的lcd顯示控制系統(tǒng)的設(shè)計(jì)_第4頁(yè)
基于fpga的頻率計(jì)設(shè)計(jì)及fpga的lcd顯示控制系統(tǒng)的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩103頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

基于FPGA的頻率計(jì)設(shè)計(jì)摘要:現(xiàn)場(chǎng)可編程門陣列FPGA的出現(xiàn)給現(xiàn)代電子設(shè)計(jì)帶來了極大的方便和靈活性,使復(fù)雜的數(shù)字電子系統(tǒng)設(shè)計(jì)變?yōu)樾酒?jí)設(shè)計(jì),可編程器件最大的特點(diǎn)是可通過軟件編程對(duì)其器件的結(jié)構(gòu)和工作方式進(jìn)行重構(gòu),能隨時(shí)進(jìn)行設(shè)計(jì)調(diào)整從而滿足各種需求。FPGA是英文FieldProgrammableGateArray的縮寫,它是在PAL,GAL,等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物,它是采用了邏輯單元陣列LCA這樣一個(gè)新概念,內(nèi)部包括可配置邏輯模塊,輸出輸入模塊和內(nèi)部連線三個(gè)部分。關(guān)鍵字:現(xiàn)場(chǎng)可編程門陣列FPGA、數(shù)字式頻率計(jì)、VHDL、EDA、LCD;

ThefrequencyofdesignbasedonFPGAAbstract:ThefieldreprogrammablearrayFPGAtomodernelectronicdesigntheemergenceofbringsgreatconvenienceandflexibility,andmakethecomplexdigitalelectronicsystemdesignintochipleveldesign,programmabledevicesbiggestcharacteristicistobeabletoitsdevicesthroughprogrammingthestructureandtheworkingwayreconstructiondesigncan,atanytime,inordertomeetvariousneeds.FieldProgrammableGateFPGAisinEnglish,itistheabbreviationofArrayinGALPAL,basedonProgrammabledevicesforthefurtherdevelopmentoftheproduct,itistousethelogicelementArrayofsuchanewconcept,LCAinternalincludingconfigurablelogicmodule,outputinputmoduleandinternalattachment3parts.Keywords:thefieldreprogrammablearrayFPGA,digitalfrequencymeter,VHDL,EDA,LCD;

課題選擇及開發(fā)環(huán)境課題選擇意義1、全面掌握EDA(ForPCB)設(shè)計(jì)工具和設(shè)計(jì)技巧,并且具備一定可制造性設(shè)計(jì)理念。2、熟練使用測(cè)試儀器和具備一定的調(diào)試手段。3、領(lǐng)會(huì)信號(hào)完整性和電源完整性,能對(duì)系統(tǒng)不穩(wěn)定狀況作出初步判斷。4、掌握數(shù)字電路,掌握硬件描述語(yǔ)言,掌握時(shí)序分析。5、掌握FPGA設(shè)計(jì)流程(包括:編譯、綜合、映射、布局布線、時(shí)序分析、形式驗(yàn)證、前仿真、后仿真)并熟練使用EDA(ForFPGA)軟件群,同時(shí)實(shí)現(xiàn)必要的優(yōu)化,以實(shí)現(xiàn)面積與速度的平衡。二、課題背景及國(guó)內(nèi)外發(fā)展情況:頻率計(jì)的基本功能是根據(jù)基準(zhǔn)時(shí)鐘對(duì)被測(cè)時(shí)鐘進(jìn)行檢測(cè),并且被測(cè)時(shí)鐘的頻率值在數(shù)碼管進(jìn)行顯示。這里采用的工作原理是利用基準(zhǔn)時(shí)鐘產(chǎn)生1s的時(shí)間寬度,從而在這1s的時(shí)間寬度里對(duì)被測(cè)時(shí)鐘計(jì)數(shù),然后將最后的計(jì)數(shù)結(jié)果送到數(shù)碼管顯示。傳統(tǒng)的數(shù)字頻率計(jì)可以通過普通的硬件電路組合來實(shí)現(xiàn),其開發(fā)過程、調(diào)試過程十分繁瑣,而且由于電子器件之間的互相干擾,影響頻率計(jì)的精度,也由于其體積較大,已不適應(yīng)電子設(shè)計(jì)的發(fā)展要求。采用EDA(ElectronicDesignAutomation)的方法來完成頻率計(jì)的設(shè)計(jì),即通過VHDL硬件描述語(yǔ)言的設(shè)計(jì),用FPGA來實(shí)現(xiàn)。FPGA即現(xiàn)場(chǎng)可編程邏輯器件是由存放在片內(nèi)RAM中的程序來設(shè)置其工作狀態(tài)的,因此,工作時(shí)需要對(duì)片內(nèi)的RAM進(jìn)行編程。用戶可根據(jù)不同的配置模式,采用不同的編程模式。加電時(shí),F(xiàn)PGA芯片將EPROM中數(shù)據(jù)讀入片內(nèi)編程RAM中,配置完成后,F(xiàn)PGA進(jìn)入工作狀態(tài)。掉電后,F(xiàn)PGA恢復(fù)成白片,內(nèi)部邏輯關(guān)系消失,因此,F(xiàn)PGA能夠反復(fù)使用。FPGA的編程無須專用的FPGA編程器,只需用通用的EPROM、PROM編程器即可。當(dāng)需要修改FPGA功能時(shí),只需換一片EPROM即可。這樣,同一片F(xiàn)PGA,不同的編程數(shù)據(jù),可以產(chǎn)生不同的電路功能。因此,F(xiàn)PGA的使用非常靈活。同時(shí)EDA開發(fā)工具的通用性、設(shè)計(jì)語(yǔ)言的標(biāo)準(zhǔn)化以及設(shè)計(jì)過程幾乎與所用器件的硬件結(jié)構(gòu)無關(guān),所以設(shè)計(jì)成功的各類邏輯功能塊軟件有很好的兼容性和可移植性,可以在很短的時(shí)間里完成十分復(fù)雜的系統(tǒng)設(shè)計(jì)。系統(tǒng)的硬件框架設(shè)計(jì)本系統(tǒng)由脈沖輸入電路、整形濾波電路、核心控制電路(由FPGA構(gòu)成)和輸出顯示電路組成,如圖2所示控制的核心芯片F(xiàn)PGA:它由兩大功能模塊組成:(1)頻率計(jì)數(shù)模塊,包含兩個(gè)部分,選通時(shí)間控制部分,可改變選通時(shí)間;計(jì)數(shù)部分,根據(jù)選通時(shí)間的長(zhǎng)短對(duì)被測(cè)信號(hào)正脈沖進(jìn)行計(jì)數(shù);(2)掃描顯示模塊,對(duì)計(jì)數(shù)的結(jié)果進(jìn)行掃描顯示,從而完成整個(gè)測(cè)頻率的過程。外圍的電路相對(duì)簡(jiǎn)單,只有信號(hào)輸入整形電路和LCD顯示電路。系統(tǒng)的工作原理:是被測(cè)信號(hào)經(jīng)整形生成矩形波(幅度0-5V)輸入到控制核心芯片F(xiàn)PGA的計(jì)數(shù)模塊,計(jì)數(shù)模塊根據(jù)所提供的矩形波上升沿計(jì)數(shù),計(jì)數(shù)時(shí)間則由選通時(shí)間控制部分決定,根據(jù)頻率所處的范圍來決定檔位;將計(jì)數(shù)的結(jié)果給顯示電路,通過掃描,在LCD上顯示頻率的大小。工具軟件基礎(chǔ)ProtelDXP軟件ProtelDXP簡(jiǎn)介ProtelDXP是集所有設(shè)計(jì)工具于一身的、功能較強(qiáng)大的一種EDA軟件。它具有良好的數(shù)據(jù)易交換性和開放性,形成了從電氣原理到物理結(jié)構(gòu)的電子設(shè)計(jì)自動(dòng)化體系。該軟件不僅在繪制原理圖、印刷線路板布局、布線方面功能完備,還由于它內(nèi)嵌一個(gè)功能強(qiáng)大的A/D混合信號(hào)仿真器,利用它設(shè)計(jì)人員能夠方便、快捷地進(jìn)行電路的原理圖與印刷電路圖的設(shè)計(jì).隨時(shí)可以對(duì)電路進(jìn)行試驗(yàn)仿真和功能驗(yàn)證,甚至可以對(duì)當(dāng)前的原理圖進(jìn)行仿真,察看和分析電路的性能指標(biāo),及時(shí)發(fā)現(xiàn)設(shè)計(jì)中所存在的問題并加以改正.提高電路設(shè)計(jì)的工作效率。ProtelDxp設(shè)計(jì)電路原理圖到電路板PCB圖的一般步驟電子電路設(shè)計(jì)的基礎(chǔ)是設(shè)計(jì)好原理圖,然后通過原理圖的網(wǎng)絡(luò)連接關(guān)系來設(shè)計(jì)電路板PCB圖,一般來說,從原理圖到電路板PCB圖的設(shè)計(jì)步驟如下(1)將要繪制的原理圖及對(duì)應(yīng)的PCB圖所需要的元器件封裝列成表格,這樣在繪圖過程中就不會(huì)有元器件遺漏;(2)啟動(dòng)ProtelDXP系統(tǒng)建立后綴名為.SchDoc的原理圖設(shè)計(jì)文件;(3)設(shè)置圖紙大小確定整個(gè)電路圖的總體布局;(4)加載原理圖元件庫(kù);(5)放置好所有元件并連線;(6)對(duì)原理圖進(jìn)行電氣規(guī)則檢查,修改不完善的地方;(7)對(duì)上述原理圖進(jìn)行仿真,進(jìn)一步驗(yàn)證電路圖的可行性,并做相應(yīng)的修改;(8)對(duì)修改后的原理圖進(jìn)行編譯,生成PCB所需網(wǎng)絡(luò)表;(9)啟動(dòng)PCB系統(tǒng)建立后綴名為.PcbDoc的PCB文件;(9)啟動(dòng)PCB系統(tǒng)建立后綴名為.PcbDoc的PCB文件;(10)回加載PCB元件庫(kù);(11)通過原理圖生成的網(wǎng)絡(luò)表將元器件的封裝加載到PCB編輯器中;(12)對(duì)元器件進(jìn)行布局;(13)PCB編輯器參數(shù)及PCB設(shè)計(jì)規(guī)則設(shè)置;(14)自動(dòng)布線;(15)手工修改調(diào)整布局;(16)對(duì)PCB進(jìn)行電路規(guī)則檢查,修改不完善的地方;(17)對(duì)PCB板進(jìn)行3D演示,來觀看PCB電路板布局是否合理;AlteraQuartusII工具的使用QuartusII簡(jiǎn)介Altera公司的QuartusII設(shè)計(jì)軟件提供完整的多平臺(tái)設(shè)計(jì)環(huán)境,它能夠直接滿足特定設(shè)計(jì)的需要,為可編程芯片系統(tǒng)(SOPC)設(shè)計(jì)的綜合性環(huán)境。QuartusII軟件擁有FPGA和CPLD設(shè)計(jì)的所有階段的解決方案,QuartusII設(shè)計(jì)流程如下圖所示。編程和配置設(shè)計(jì)輸入編程和配置設(shè)計(jì)輸入綜合布局布線時(shí)序分析仿真功耗分析調(diào)試工程更改管理時(shí)序逼近圖1.1QuartusII設(shè)計(jì)流程圖QuartusII設(shè)計(jì)工具支持基于VHDL、VerilogHDL的設(shè)計(jì),其內(nèi)部嵌有VHDL、VerilogHDL邏輯綜合器。QuartusII可以利用第三方的綜合工具如Synplify進(jìn)行邏輯綜合,也可以利用第三方的仿真工具如Modelsim進(jìn)行仿真,此外QuartusII與MATLAB和DSPBuilder結(jié)合,可以進(jìn)行基于FPGA的DSP系統(tǒng)開發(fā)。使用QuartusII內(nèi)嵌的SOPCBuilder,配合NiosIIIDE集成開發(fā)環(huán)境,可以開發(fā)NiosII嵌入式軟核處理器。圖形用戶界面設(shè)計(jì)流程QuartusII軟件為設(shè)計(jì)流程的每個(gè)階段提供QuartusII圖形用戶界面及命令行界面,可以在整個(gè)流程中使用這些界面中的一個(gè),也可以在設(shè)計(jì)流程的不同階段使用不同的界面。下圖所示為QuartusII圖形用戶界面的功能:設(shè)計(jì)輸入設(shè)計(jì)輸入TextEditBlock&SyinbolEditorMegaWizardPlug-InManager綜合Analysis&SynthesisVHDL、VerilogHDL&AHDLDesignAssisant布局布線FitterAssignmentEditorFlcorplanEditorChipEditorReportWindow時(shí)序分析TirningAnalyzerReportWindow仿真SimulatorWaveformEditor編程AssemblerProgrammerConvertProgrammingFiles系統(tǒng)設(shè)計(jì)SOPCBuilderDSPBuilder軟件開發(fā)SoftwareBuilder基于塊的設(shè)計(jì)LogicLockFloorplanEditorVQMWriterEDA界面EDANetlistWriter時(shí)序逼近FloorplanEditorLogicLock調(diào)試SignalTapIISignalProbeChipEditor工程更改管理ChipEditorResourcePropertyEditorChengeManager圖2.1QuartusII圖形用戶界面的功能圖2.2:QuartusII圖形用戶界面QuartusII圖形用戶界面的基本設(shè)計(jì)流程步驟使用NewProjectWizard(File菜單)建立新工程并指定目標(biāo)器件或器件系列;使用TextEditor(文本編輯器)建立VerilogHDL、VHDL或Altera硬件描述語(yǔ)言(AHDL)設(shè)計(jì)。您可以使用BlockEditor(原理圖編輯器)建立流程圖或原理圖。流程圖中可以包含代表其它設(shè)計(jì)文件的符號(hào)。還可以使用MegaWizardPlug-InManager生成宏功能模塊和IP內(nèi)核的自定義變量,在設(shè)計(jì)中將它們實(shí)例化;(可選)使用AssignmentEditor、Settings對(duì)話框(Assignments菜單)、FloorplanEditor和/或LogicLock功能指定初始設(shè)計(jì)的約束條件;(可選)使用SOPCBuilder或DSPBuilder建立系統(tǒng)級(jí)設(shè)計(jì);(可選)使用SoftwareBuilder為Excalibur?器件處理器或Nios嵌入式處理器建立軟件和編程文件;使用Analysis&Synthesis對(duì)設(shè)計(jì)進(jìn)行綜合;(可選)使用仿真器對(duì)設(shè)計(jì)執(zhí)行功能仿真;使用Fitter對(duì)設(shè)計(jì)執(zhí)行布局布線。在對(duì)源代碼進(jìn)行少量更改之后,還可以使用增量布局布線;使用TimingAnalyzer對(duì)設(shè)計(jì)進(jìn)行時(shí)序分析;使用仿真器對(duì)設(shè)計(jì)進(jìn)行時(shí)序仿真;(可選)使用物理綜合、時(shí)序底層布局圖、LogicLock功能、Settings對(duì)話框和AssignmentEditor進(jìn)行設(shè)計(jì)優(yōu)化,實(shí)現(xiàn)時(shí)序關(guān)閉;使用Assembler為設(shè)計(jì)建立編程文件;使用編程文件、Programmer和Altera硬件編程器對(duì)器件進(jìn)行編程;或?qū)⒕幊涛募D(zhuǎn)換為其它文件格式以供嵌入式處理器等其它系統(tǒng)使用;(可選)使用SignalTapIILogicAnalyzer、SignalProbe功能或ChipEditor對(duì)設(shè)計(jì)進(jìn)行調(diào)試;(可選)使用ChipEditor、ResourcePropertyEditor和ChangeManager進(jìn)行工程更改管理;系統(tǒng)硬件設(shè)計(jì)系統(tǒng)硬件整體布線圖系統(tǒng)的主要功能電路本系統(tǒng)設(shè)計(jì)中主要功能模塊是FPGA主控模塊,它是整個(gè)設(shè)計(jì)的中心和核心,外圍電路主要包括晶振電路,模擬信號(hào)輸入高速整形電路,復(fù)位電路,數(shù)碼管顯示電路以及JTAG下載電路。上圖說明:該圖為為本系統(tǒng)設(shè)計(jì)的主電路圖,其分成2各模塊,左邊為寬帶放大器模塊,實(shí)現(xiàn)的是模擬電路板塊的功能;右邊的為CPLD模塊,實(shí)現(xiàn)的是數(shù)字電路板塊的功能。將其分化成兩個(gè)區(qū)域是為了在移動(dòng)或者拖動(dòng)電路時(shí),使兩個(gè)模塊各自的電路元件之間的相對(duì)位置不發(fā)生改變,確保其相對(duì)固定和完整。模塊CPLD具體電路圖,如下:寬帶放大器模塊電路圖為:基于FPGA的系統(tǒng)設(shè)計(jì)關(guān)于CPLDCPLD主要是由可編程邏輯宏單元(MC,MacroCell)圍繞中心的可編程互連矩陣單元組成。其中MC結(jié)構(gòu)較復(fù)雜,并具有復(fù)雜的I/O單元互連結(jié)構(gòu),可由用戶根據(jù)需要生成特定的電路結(jié)構(gòu),完成一定的功能。由于CPLD內(nèi)部采用固定長(zhǎng)度的金屬線進(jìn)行各邏輯塊的互連,所以設(shè)計(jì)的邏輯電路具有時(shí)間可預(yù)測(cè)性,避免了分段式互連結(jié)構(gòu)時(shí)序不完全預(yù)測(cè)的缺點(diǎn)。發(fā)展歷史及應(yīng)用領(lǐng)域20世紀(jì)70年代,最早的可編程邏輯器件--PLD誕生了。其輸出結(jié)構(gòu)是可編程的邏輯宏單元,因?yàn)樗挠布Y(jié)構(gòu)設(shè)計(jì)可由軟件完成,所以它的設(shè)計(jì)比純硬件的數(shù)字電路具有很強(qiáng)的靈活性,但其過于簡(jiǎn)單的結(jié)構(gòu)也使它們只能實(shí)現(xiàn)規(guī)模較小的電路。為彌補(bǔ)PLD只能設(shè)計(jì)小規(guī)模電路這一缺陷,20世紀(jì)80年代中期,推出了復(fù)雜可編程邏輯器件--CPLD。目前應(yīng)用已深入網(wǎng)絡(luò)、儀器儀表、汽車電子、數(shù)控機(jī)床、航天測(cè)控設(shè)備等方面。器件特點(diǎn)它具有編程靈活、集成度高、設(shè)計(jì)開發(fā)周期短、適用范圍寬、開發(fā)工具先進(jìn)、設(shè)計(jì)制造成本低、對(duì)設(shè)計(jì)者的硬件經(jīng)驗(yàn)要求低、標(biāo)準(zhǔn)產(chǎn)品無需測(cè)試、保密性強(qiáng)、價(jià)格大眾化等特點(diǎn),可實(shí)現(xiàn)較大規(guī)模的電路設(shè)計(jì),因此被廣泛應(yīng)用于產(chǎn)品的原型設(shè)計(jì)和產(chǎn)品生產(chǎn)(一般在10,000件以下)之中。幾乎所有應(yīng)用中小規(guī)模通用數(shù)字集成電路的場(chǎng)合均可應(yīng)用CPLD器件。CPLD器件已成為電子產(chǎn)品不可缺少的組成部分,它的設(shè)計(jì)和應(yīng)用成為電子工程師必備的一種技能。關(guān)于VHDLVHDL的英文全名是Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage。翻譯成中文就是超高速集成電路硬件描述語(yǔ)言。因此它的應(yīng)用主要是應(yīng)用在數(shù)字電路的設(shè)計(jì)中。目前,它在中國(guó)的應(yīng)用多數(shù)是用在FPGA/CPLD/EPLD的設(shè)計(jì)中。當(dāng)然在一些實(shí)力較為雄厚的單位,它也被用來設(shè)計(jì)ASIC。VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了含有許多具有硬件特征的語(yǔ)句外,VHDL的語(yǔ)言形式和描述風(fēng)格與句法是十分類似于一般的計(jì)算機(jī)高級(jí)語(yǔ)言。VHDL的程序結(jié)構(gòu)特點(diǎn)是將一項(xiàng)工程設(shè)計(jì),或稱設(shè)計(jì)實(shí)體(可以是一個(gè)元件,一個(gè)電路模塊或一個(gè)系統(tǒng))分成外部(或稱可是部分,及端口)和內(nèi)部(或稱不可視部分),既涉及實(shí)體的內(nèi)部功能和算法完成部分。在對(duì)一個(gè)設(shè)計(jì)實(shí)體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其他的設(shè)計(jì)就可以直接調(diào)用這個(gè)實(shí)體。特點(diǎn)功能強(qiáng)大、設(shè)計(jì)靈活。VHDL具有功能強(qiáng)大的語(yǔ)言結(jié)構(gòu),可以用簡(jiǎn)潔明確的源代碼來描述復(fù)雜的邏輯控制。它具有多層次的設(shè)計(jì)描述功能,層層細(xì)化,最后可直接生成電路級(jí)描述。VHDL支持同步電路、異步電路和隨機(jī)電路的設(shè)計(jì),這是其他硬件描述語(yǔ)言雖不能比擬的。VHDL還支持各種設(shè)計(jì)方法,既支持自底向上的設(shè)計(jì),又支持自頂向下的設(shè)計(jì);既支持模塊化設(shè)計(jì),又支持層次化設(shè)計(jì)。支持廣泛、易于修改。由于VHDL已經(jīng)成為IEEE標(biāo)準(zhǔn)所規(guī)范的硬件描述語(yǔ)言,目前大多數(shù)EDA工具幾乎都支持VHDL,這為VHDL的進(jìn)一步推廣和廣泛應(yīng)用奠定了基礎(chǔ)。在硬件電路設(shè)計(jì)過程中,主要的設(shè)計(jì)文件是用VHDL編寫的源代碼,因?yàn)閂HDL易讀和結(jié)構(gòu)化,所以易于修改設(shè)計(jì)。強(qiáng)大的系統(tǒng)硬件描述能力。VHDL具有多層次的設(shè)計(jì)描述功能,既可以描述系統(tǒng)級(jí)電路,又可以描述門級(jí)電路。而描述既可以采用行為描述、寄存器傳輸描述或結(jié)構(gòu)描述,也可以采用三者混合的混合級(jí)描述。另外,VHDL支持慣性延遲和傳輸延遲,還可以準(zhǔn)確地建立硬件電路模型。VHDL支持預(yù)定義的和自定義的數(shù)據(jù)類型,給硬件描述帶來較大的自由度,使設(shè)計(jì)人員能夠方便地創(chuàng)建高層次的系統(tǒng)模型。獨(dú)立于器件的設(shè)計(jì)、與工藝無關(guān)。設(shè)計(jì)人員用VHDL進(jìn)行設(shè)計(jì)時(shí),不需要首先考慮選擇完成設(shè)計(jì)的器件,就可以集中精力進(jìn)行設(shè)計(jì)的優(yōu)化。當(dāng)設(shè)計(jì)描述完成后,可以用多種不同的器件結(jié)構(gòu)來實(shí)現(xiàn)其功能。很強(qiáng)的移植能力。VHDL是一種標(biāo)準(zhǔn)化的硬件描述語(yǔ)言,同一個(gè)設(shè)計(jì)描述可以被不同的工具所支持,使得設(shè)計(jì)描述的移植成為可能。易于共享和復(fù)用。VHDL采用基于庫(kù)(Library)的設(shè)計(jì)方法,可以建立各種可再次利用的模塊。這些模塊可以預(yù)先設(shè)計(jì)或使用以前設(shè)計(jì)中的存檔模塊,將這些模塊存放到庫(kù)中,就可以在以后的設(shè)計(jì)中進(jìn)行復(fù)用,可以使設(shè)計(jì)成果在設(shè)計(jì)人員之間進(jìn)行交流和共享,減少硬件電路設(shè)計(jì)。關(guān)于液晶顯示液晶顯示材料具有明顯的優(yōu)點(diǎn):驅(qū)動(dòng)電壓低、功耗微小、可靠性高、顯示信息量大、彩色顯示、無閃爍、對(duì)人體無危害、生產(chǎn)過程自動(dòng)化、成本低廉、可以制成各種規(guī)格和類型的液晶顯示器,便于攜帶等。由于這些優(yōu)點(diǎn)。用液晶材料制成的計(jì)算機(jī)終端和電視可以大幅度減小體積等。液晶顯示技術(shù)對(duì)顯示顯像產(chǎn)品結(jié)構(gòu)產(chǎn)生了深刻影響,促進(jìn)了微電子技術(shù)和光電信息技術(shù)的發(fā)展。JHD162A特性 電參數(shù):=5.0V10%,=0V,=25°C 顯示內(nèi)容:16字符*2行 字符點(diǎn)陣:5*7點(diǎn) 驅(qū)動(dòng)方式:1/16D 可供型號(hào):TNSTN(黃綠?;夷:诎啄#? 反射型帶EL或LED背光源 EL/100VAC400HZ LED/4.2VDC 供電部分:2.2.2JHD162A應(yīng)用部分1.應(yīng)用電路圖 2.外形尺寸/顯示內(nèi)容3.接口第1腳:VSS為電源地第2腳:VDD接5V電源正極第3腳:V0為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高(對(duì)比度過高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10K的電位器調(diào)整對(duì)比度)。第4腳:RS為寄存器選擇,高電平1時(shí)選擇數(shù)據(jù)寄存器、低電平0時(shí)選擇指令寄存器。第5腳:RW為讀寫信號(hào)線,高電平(1)時(shí)進(jìn)行讀操作,低電平(0)時(shí)進(jìn)行寫操作。第6腳:E(或EN)端為使能(enable)端。第7~14腳:D0~D7為8位雙向數(shù)據(jù)端。第15~16腳:空腳或背燈電源。15腳背光正極,16腳背光負(fù)極。4.讀模式時(shí)序圖 5.寫模式時(shí)序圖 6.指令表 指令指令碼指令周期f=250KHZRSR/WDB7DB6DB5DB4DB3DB2DB1DB01清屏00000000011.64ms2光標(biāo)返回000000001*1.64ms3設(shè)置輸入方式00000001I/DS40us4顯示開關(guān)0000001DCB40us5移位000001S/CR/L**40us6功能設(shè)置00001DLNF**40us7CGRAM地址設(shè)置0001ACG40us8DDRAM地址設(shè)置001ADD40us9忙標(biāo)志/讀地址計(jì)數(shù)器01BFAC0us10c10寫數(shù)據(jù)40us11CGRAM/DDRAM數(shù)據(jù)讀11讀數(shù)據(jù)40us說明:它的讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實(shí)現(xiàn)的。(說明:1為高電平、0為低電平)指令1:清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00H指令3:光標(biāo)和顯示模式設(shè)置I/D:光標(biāo)移動(dòng)方向,高電平右移,低電平左移S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效指令4:顯示開關(guān)控制。D:控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示C:控制光標(biāo)的開與關(guān),高電平表示有光標(biāo),低電平表示無光標(biāo)B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍指令5:光標(biāo)或顯示移位S/C:高電平時(shí)移動(dòng)顯示的文字,低電平時(shí)移動(dòng)光標(biāo)指令6:功能設(shè)置命令DL:高電平時(shí)為4位總線,低電平時(shí)為8位總線N:低電平時(shí)為單行顯示,高電平時(shí)雙行顯示F:低電平時(shí)顯示5x7的點(diǎn)陣字符,高電平時(shí)顯示5x10的點(diǎn)陣字符指令7:字符發(fā)生器RAM地址設(shè)置指令8:DDRAM地址設(shè)置指令9:讀忙信號(hào)和光標(biāo)地址BF:為忙標(biāo)志位,高電平表示忙,此時(shí)模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。指令10:寫數(shù)據(jù)指令11:讀數(shù)據(jù)。(四)系統(tǒng)軟件設(shè)計(jì)本設(shè)計(jì)FPGA芯片采用的是Altera公司的Cyclone系列EP1C6T144C8芯片,該芯片的反應(yīng)時(shí)間可達(dá)ns級(jí),頻率計(jì)的測(cè)頻范圍可為1Hz~999MHz。系統(tǒng)在兼顧測(cè)量精度和測(cè)量反應(yīng)時(shí)間的基礎(chǔ)上,實(shí)現(xiàn)了量程的自動(dòng)轉(zhuǎn)換,測(cè)量可以全自動(dòng)地進(jìn)行。其控制和邏輯電路是基于QuartusⅡ和VHDL語(yǔ)言進(jìn)行設(shè)計(jì),外部電路相當(dāng)簡(jiǎn)單。主要源程序1.主程序libraryIEEE;useIEEE.STD_LOGIC_1164.all;useIEEE.STD_LOGIC_ARITH.all;useIEEE.STD_LOGIC_UNSIGNED.all;--librarywork;--usework.PkgLcd.all;entitylcdisport(clk:instd_logic;--4MHZFROMD12Reset:instd_logic;button1:instd_logic;button2:instd_logic;lcd_rs:outstd_logic;lcd_rw:outstd_logic;lcd_e:bufferstd_logic;data:outstd_logic_vector(7downto0);stateout:outstd_logic_vector(10downto0));endlcd;architectureBehavioraloflcdistypeCharModelisarray(0to13)ofstd_logic_vector(4downto0);constantUserDefinedChar:CharModel:=(("00111"),("00010"),("00110"),("00101"),("00110"),("00100"),("00100"),("01111"),("10001"),("01011"),("11101"),("01011"),("11101"),("00011"));typeLCDStateis(INIT,IDLE,CLEAR,SETMODE,SWITCHMODE,SHIFTL,SHIFTR,BLINK,SETFUNCTION,SETDDRAM,WRITERAM,CHECK,SETCGADDR,SENDCGDATA);signalstate:LCDState;constantcur_inc:std_logic:='1';constantcur_dec:std_logic:='0';constantcur_shift:std_logic:='1';constantcur_noshift:std_logic:='0';constantopen_display:std_logic:='1';constantopen_cur:std_logic:='0';constantblank_cur:std_logic:='0';constantshift_display:std_logic:='1';constantshift_cur:std_logic:='0';constantright_shift:std_logic:='1';constantleft_shift:std_logic:='0';constantdatawidth8:std_logic:='1';constantdatawidth4:std_logic:='0';constanttwoline:std_logic:='1';constantoneline:std_logic:='0';constantfont5x10:std_logic:='1';constantfont5x7:std_logic:='0';signalcounter:integerrange0to127;signalcounter1:integerrange0to127;signaldiv_counter:integerrange0to15;constantDIVSS:integer:=15;signalchar_addr:std_logic_vector(5downto0);signaldata_in1,data_in2,data_in3:std_logic_vector(7downto0);signaldata_in:std_logic_vector(7downto0);signalStringNumber:integerrange0to2;signalStringNumberLast:integerrange0to2;signalStringNumberChange:boolean;signalFunctionNumber:integerrange0to2;signalFunctionNumberChange:boolean;signalcButton1,cButton1Last:std_logic;signalcButton2,cButton2Last:std_logic;signalcButton1Pressed:boolean;signalcButton2Pressed:boolean;signalflag1:std_logic;signalflag2:std_logic;signalresponse1:std_logic;signalresponse2:std_logic;signalDisplayOn:std_logic;signalLineNumber:integerrange0to15;componentchar_ramgeneric(DisplayContent:string:="HelloChina");port(address:instd_logic_vector(5downto0);data:outstd_logic_vector(7downto0));endcomponent;componentchar_ram_userport(address:instd_logic_vector(5downto0);data:outstd_logic_vector(7downto0));endcomponent;componentClkGenport(clk:instd_logic;reset:instd_logic;clkout:outstd_logic;clkout1:outstd_logic;lcd_e_out:outstd_logic);endcomponent;signalclkdiv:std_logic;signalclk_int:std_logic;beginGenerateClks:ClkGenportmap(clk=>clk,reset=>reset,clkout=>clkdiv,clkout1=>clk_int,lcd_e_out=>lcd_e);String1:char_ramgenericmap(DisplayContent=>"WelcometoShanghaiSecondPolytechnicUniversity")portmap(address=>char_addr,data=>data_in1);String2:char_ramgenericmap(DisplayContent=>"07ComputerScienceS1")portmap(address=>char_addr,data=>data_in2);String3:char_ramgenericmap(DisplayContent=>"TaoCheng")portmap(address=>char_addr,data=>data_in3);process(reset,clk_int)beginif(reset='0')thencButton1<='0';cButton2<='0';elsif(rising_edge(clk_int))thencButton1<=button1;cButton2<=button2;endif;endprocess;process(reset,clk_int)beginif(reset='0')thencButton1Last<='1';cButton2Last<='1';elsif(rising_edge(clk_int))thencButton1Last<=cButton1;cButton2Last<=cButton2;endif;endprocess;cButton1Pressed<=(cButton1Last='0')and(cButton1='1');cButton2Pressed<=(cButton2Last='0')and(cButton2='1');process(reset,clk_int)beginif(reset='0')thenFunctionNumber<=0;elsif(rising_edge(clk_int))thenif(cButton2Pressed)thenif(FunctionNumber=2)thenFunctionNumber<=0;elseFunctionNumber<=FunctionNumber+1;endif;endif;endif;endprocess;--FuntionNumber=--0:rollingleft--1:rollingright--2:blinkeffectprocess(reset,clk_int)beginif(reset='0')thenStringNumber<=0;elsif(rising_edge(clk_int))thenif(cButton1Pressed)thenif(StringNumber=2)thenStringNumber<=0;elseStringNumber<=StringNumber+1;endif;endif;endif;endprocess;process(cButton1Pressed,response1)beginif(cButton1Pressed)thenflag1<='1';elsif(rising_edge(response1))thenflag1<='0';endif;endprocess;process(cButton2Pressed,response2)beginif(cButton2Pressed)thenflag2<='1';elsif(rising_edge(response2))thenflag2<='0';endif;endprocess;StringNumberChange<=(StringNumberLast/=StringNumber);data_in<=data_in1whenStringNumber=0elsedata_in2whenStringNumber=1elsedata_in3;char_addr<=conv_std_logic_vector(counter,6)whenstate=WRITERAMandcounter<64elseconv_std_logic_vector(counter-65,6)whenstate=WRITERAMandcounter>64andcounter<127else"000000";--stateout<=state;stateout<=(others=>'0');--StateMachineprocess(clk_int,Reset)beginif(Reset='0')thenresponse1<='0';response2<='0';lcd_rs<='0';lcd_rw<='0';data<=(others=>'0');state<=INIT;counter<=0;div_counter<=0;LineNumber<=0;elsif(rising_edge(clk_int))thencasestateiswhenINIT=>response1<='0';response2<='0';lcd_rs<='0';lcd_rw<='0';data<=(0=>'1',others=>'0');state<=SETCGADDR;whenSETCGADDR=>lcd_rs<='0';lcd_rw<='0';if(LineNumber>13)thenstate<=IDLE;elsestate<=SENDCGDATA;data<="01"&conv_std_logic_vector(LineNumber,6);endif;whenSENDCGDATA=>lcd_rs<='1';lcd_rw<='0';--data<="000"&UserDefinedChar(LineNumber);data<="00011111";LineNumber<=LineNumber+1;state<=SETCGADDR;whenIDLE=>response1<='0';response2<='0';lcd_rs<='0';lcd_rw<='0';data<=(others=>'0');counter<=0;div_counter<=0;LineNumber<=0;state<=CLEAR;whenCLEAR=>lcd_rs<='0';lcd_rw<='0';data<="00000001";state<=SETFUNCTION;whenSETFUNCTION=>lcd_rs<='0';lcd_rw<='0';data<="001"&datawidth8&twoline&font5x7&"00";state<=SETMODE;whenSETMODE=>lcd_rs<='0';lcd_rw<='0';data<="000001"&cur_inc&cur_noshift;state<=SWITCHMODE;whenSWITCHMODE=>lcd_rs<='0';lcd_rw<='0';data<="00001"&open_display&open_cur&blank_cur;state<=WRITERAM;whenWRITERAM=>lcd_rs<='1';lcd_rw<='0';data<=data_in;if(counter=32)thenstate<=SETDDRAM;counter<=counter+1;elsif(counter/=32andcounter<65)thenstate<=WRITERAM;counter<=counter+1;elseif(FunctionNumber=2)thenstate<=BLINK;elsif(FunctionNumber=0)thenstate<=SHIFTL;elsestate<=SHIFTR;endif;endif;whenSETDDRAM=>lcd_rs<='0';lcd_rw<='0';if(counter=0)thendata<="10000000";elsedata<="11000000";endif;state<=WRITERAM;whenSHIFTL=>lcd_rs<='0';lcd_rw<='0';data<="0001"&shift_display&left_shift&"00";--state<=IDLE;state<=CHECK;whenSHIFTR=>lcd_rs<='0';lcd_rw<='0';data<="0001"&shift_display&right_shift&"00";state<=CHECK;whenBLINK=>lcd_rs<='0';lcd_rw<='0';DisplayOn<=notDisplayOn;data<="00001"&DisplayOn&open_cur&blank_cur;state<=CHECK;whenCHECK=>lcd_rs<='0';lcd_rw<='0';data<=(others=>'0');if(flag1='1')then--thereisdisplaycontentchangeresponse1<='1';state<=IDLE;elsif(flag2='1')then--thereisdisplayfunctionchangeresponse2<='1';state<=IDLE;else--NOchangeif(div_counter=15)thendiv_counter<=0;if(FunctionNumber=2)thenstate<=BLINK;elsif(FunctionNumber=0)thenstate<=SHIFTL;elsestate<=SHIFTR;endif;elsediv_counter<=div_counter+1;state<=CHECK;endif;endif;whenothers=>state<=IDLE;endcase;endif;endprocess;endBehavioral; 2.調(diào)用定義字符libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useIEEE.STD_LOGIC_ARITH.ALL;entitychar_ramisgeneric(DisplayContent:string:="HelloChina");port(address:instd_logic_vector(5downto0); data:outstd_logic_vector(7downto0) );endchar_ram;architecturefunofchar_ramistypeRAMisarray(1toDisplayContent'high)ofstd_logic_vector(7downto0);signalMyRam:RAM;typeram2isarray(0to7)ofstd_logic_vector(7downto0);constantcgram:ram2:=(("00001000"),("00001111"),("00010010"),("00001111"),("00001010"),("00011111"),("00000010"),("00000010"));functionchar_to_integer(indata:character)returnintegerisvariableresult:integerrange0to16#9F#;begin caseindatais when''=> result:=32; when'!'=> result:=33; when'"'=> result:=34; when'#'=> result:=35; when'$'=> result:=36; when'%'=> result:=37; when'&'=> result:=38; when'''=> result:=39; when'('=> result:=40; when')'=> result:=41; when'*'=> result:=42; when'+'=> result:=43; when','=> result:=44; when'-'=> result:=45; when'.'=> result:=46; when'/'=> result:=47; when'0'=> result:=48; when'1'=> result:=49; when'2'=> result:=50; when'3'=> result:=51; when'4'=> result:=52; when'5'=> result:=53; when'6'=> result:=54; when'7'=> result:=55; when'8'=> result:=56; when'9'=> result:=57; when':'=> result:=58; when';'=> result:=59; when'<'=> result:=60; when'='=> result:=61; when'>'=> result:=62; when'?'=> result:=63; when'@'=> result:=64; when'A'=> result:=65; when'B'=> result:=66; when'C'=> result:=67; when'D'=> result:=68; when'E'=> result:=69; when'F'=> result:=70; when'G'=> result:=71; when'H'=> result:=72; when'I'=> result:=73; when'J'=> result:=74; when'K'=> result:=75; when'L'=> result:=76; when'M'=> result:=77; when'N'=> result:=78; when'O'=> result:=79; when'P'=> result:=80; when'Q'=> result:=81; when'R'=> result:=82; when'S'=> result:=83; when'T'=> result:=84; when'U'=> result:=85; when'V'=> result:=86; when'W'=> result:=87; when'X'=> result:=88; when'Y'=> result:=89; when'Z'=> result:=90; when'['=> result:=91; when'\'=> result:=92; when']'=> result:=93; when'^'=> result:=94; when'_'=> result:=95; when'`'=> result:=96; when'a'=> result:=97; when'b'=> result:=98; when'c'=> result:=99; when'd'=> result:=100; when'e'=> result:=101; when'f'=> result:=102; when'g'=> result:=103; when'h'=> result:=104; when'i'=> result:=105; when'j'=> result:=106; when'k'=> result:=107; when'l'=> result:=108; when'm'=> result:=109; when'n'=> result:=110; when'o'=> result:=111; when'p'=> result:=112; when'q'=> result:=113; when'r'=> result:=114; when's'=> result:=115; when't'=> result:=116; when'u'=> result:=117; when'v'=> result:=118; when'w'=> result:=119; when'x'=> result:=120; when'y'=> result:=121; when'z'=> result:=122; when'{'=> result:=123; when'|'=> result:=124; when'}'=> result:=125; when'~'=> result:=126; --whencgram=>result:=16; when others=>result:=32; endcase; returnresult;endfunction;beginRamGen:foriin1toDisplayContent'highgenerateMyRam(i)<=conv_std_logic_vector(char_to_integer(DisplayContent(i)),8);endgenerate;DataOutput:process(address)beginif(conv_integer(unsigned(address))>DisplayContent'highoraddress="000000")thendata<=conv_std_logic_vector(char_to_integer(''),8);elsedata<=MyRam(conv_integer(unsigned(address)));endif;endprocessDataOutput;endfun;3.分頻程序libraryieee;useieee.std_logic_1164.all;useieee.numeric_std.all;entityClkGenisport(clk:instd_logic;--4MHzclockfromoscillatorreset:instd_logic;--asynchronousreset,activehighclkout:outstd_logic;clkout1:outstd_logic;lcd_e_out:outstd_logic);--Outputclock50%dutycycleendClkGen;architecturertlofClkGenisconstantdivcnt:integer:=40000;signalclk_int:std_logic;signalclkcnt:integerrange0to50000;signalclkdiv:std_logic;signaltc_clkcnt:std_logic;signalclkint:std_logic;signallcd_e:std_logic;begin--rtlprocess(clk,reset)beginif(reset='0')thenclkcnt<=0;elsif(clk'eventandclk='1')thenif(clkcnt=divcnt)thenclkcnt<=0;elseclkcnt<=clkcnt+1;endif;endif;endprocess;tc_clkcnt<='1'whenclkcnt=divcntelse'0';process(tc_clkcnt,reset)beginif(reset='0')thenclkdiv<='0';elsif(tc_clkcnt'eventandtc_clkcnt='1')thenclkdiv<=notclkdiv;endif;endprocess;clkout<=clkdiv;process(clkdiv,reset)beginif(reset='0')thenclkint<='0';elsif(clkdiv'eventandclkdiv='1')thenclkint<=notclkint;endif;endprocess;clkout1<=clkint;process(clkdiv,reset)beginif(reset='0')thenlcd_e<='0';elsif(clkdiv'eventandclkdiv='0')thenlcd_e<=notlcd_e;endif;endprocess;lcd_e_out<=lcd_e;endrtl;系統(tǒng)調(diào)試運(yùn)行系統(tǒng)調(diào)試軟件調(diào)試VHDL代碼生成:用VHDL代碼生成各功能模塊,再進(jìn)行編譯檢查是否存在語(yǔ)法錯(cuò)誤;各模塊功能仿真:對(duì)VHDL代碼生成各功能模塊,再進(jìn)行軟件波形仿真;生成頂層示意圖:在確保波形仿真正確的前提下,對(duì)每個(gè)功能模塊執(zhí)行CreateSymbolFilesforCurrentFile,生成頂層文件.bdf,再進(jìn)行編譯檢查有沒有錯(cuò)誤。硬件調(diào)試檢查元器件焊接:主要檢查元器件有沒有虛焊和元器件間有沒有短路現(xiàn)象;檢查CPLD片是否正常工作:上電后用手摸CPLD芯片表面,如果感覺很燙,說明不正常,并查看示波器上顯示的波形是否穩(wěn)定,正常;檢查液晶屏是否顯示正常:打開電源查看液晶屏是否燈亮,并調(diào)整對(duì)比度,使其在最佳狀態(tài);檢查JTAG下載是否正常:首先將JTAG線連接到JTAG口,再在Quartus編譯環(huán)境中查看是否能檢測(cè)到FPGA芯片。(二)系統(tǒng)下載運(yùn)行引腳配置圖:在Quartus編譯環(huán)境中對(duì)輸入輸出信號(hào)引腳定義到FPGA芯片的相應(yīng)引腳上,如下圖:引腳配置圖下載圖:然后對(duì)頂層文件進(jìn)行編譯鏈接,通過JTAG下載到系統(tǒng)中,如下圖:下載圖最后在外部擴(kuò)展信號(hào)采集和相應(yīng)的數(shù)碼顯示電路,就可以完成一個(gè)相對(duì)簡(jiǎn)單的數(shù)字頻率計(jì)。結(jié)束語(yǔ)在開始接觸這個(gè)課題的時(shí)候我本是完全沒有思路,不了解自己的工作,然后通過馮老師的教導(dǎo),知道我這次的主要的任務(wù)就是設(shè)計(jì)一個(gè)硬件能實(shí)現(xiàn)頻率計(jì),而這個(gè)硬件就是通過FPGA這個(gè)高頻率的芯片。在做的過程中,遇到過很多困難,像是如何設(shè)計(jì)這個(gè)電路圖,如何去封裝,最主要的是我對(duì)頻率計(jì)了解不多而且又缺乏實(shí)戰(zhàn)經(jīng)驗(yàn),可謂是困難重重,多虧了馮老師的耐心教導(dǎo)和幫助一點(diǎn)點(diǎn)的讓我步入軌道,幫我調(diào)整思路,明確自己的任務(wù),一步一個(gè)腳印,終于到現(xiàn)在快要完成了。這次的畢業(yè)設(shè)計(jì)讓我心里有很大的滿足感,而且通過這次的學(xué)習(xí)讓我對(duì)FPGA,VHDL,DXP有了更多的了解,在此我還是要特別謝謝我的指導(dǎo)老師馮筱林老師,在這次的畢業(yè)設(shè)計(jì)中他幫助了我很多,也很支持我,真的很謝謝他。參考文獻(xiàn):[1]Ki-JeongKwon.Choong-BumPark.HoonChoiAproxy-basedapproachformobilitysupportintheDDSsystem[2]JenqYCDigtalspectraofnonuniformlysampledsignals:fundamentalsandhighspeedwaveformdigitizers1998(2)[3]TimoRahkonen.HarriEksyma.AnttiMantyniemiADDSSynthesizerwithDigitalTimeDomainInterpolator2001[5]高仕友基于FPGA的DDS信號(hào)發(fā)生器的設(shè)計(jì)2009(10)[6]余勇基于FPGA的DDS正弦信號(hào)發(fā)生器的設(shè)計(jì)和實(shí)現(xiàn)2005(9)[7]期刊論文基于CPLD/FPGA的VHDL語(yǔ)言電路優(yōu)化設(shè)計(jì)-現(xiàn)代電子技術(shù)2010,33(3)[8]期刊論文VHDL語(yǔ)言在FPGA中的應(yīng)用-微計(jì)算機(jī)信息2006,22(35)[9]譚會(huì)生,張昌凡.EDA技術(shù)及應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2001.附錄外文資料翻譯—原文部分Field-programmablegatearrayAfield-programmablegatearray(FPGA)isa\o"Semiconductor"semiconductordevicethatcanbeconfiguredbythecustomerordesigneraftermanufacturing—hencethename"\o"Field-programmable"field-programmable".FPGAsareprogrammedusingalogic\o"Circuitdiagram"circuitdiagramora\o"Sourcecode"sourcecodeina\o"Hardwaredescriptionlanguage"hardwaredescriptionlanguage(HDL)tospecifyhowthechipwillwork.Theycanbeusedtoimplementanylogicalfunctionthatan\o"Application-specificintegratedcircuit"application-specificintegratedcircuit

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論