版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
廣州市星翼電子科技淘寶淘寶技術支持(開源):資料: E-咨詢傳真號碼團隊:正點原子團正點原子,做最全面、最優(yōu)秀的嵌入式開發(fā)平臺軟硬件供應商友友情提示如果您想及時免費獲取“正點原子公眾平臺及時給您發(fā)資料,敬請關注正點原消息和重要資料“掃一掃”,掃描右 ,添加關 →添加朋友→輸入“alientek_stm32”→關內容簡 第一 硬件 第一章FPGA簡 FPGA的由來與特 FPGA的基本結 FPGA的設計流 第二章實驗平臺簡 ALIENTEK開拓者EP4CE10開發(fā)板資源初 ALIENTEK開拓者FPGA開發(fā)板資源說 硬件資源說 軟件資源說 開拓者IO引腳分 第三章硬件資源詳 開發(fā)板原理圖詳 時鐘輸 JTAG接 時鐘/復位/按鍵電 有源蜂鳴 電容觸摸按 數(shù)碼 RS232接 RS485接 VGA接 MCULCD模塊接 RGBLCD模塊接 紅外接收 單總線接 實時時 環(huán)境光傳感 AD/DA接 I2S音頻編 以太網(wǎng)接口(RJ45 CAN接 USB串 OLED/頭模塊接 SD卡接 SPI WIRELESS模塊接 引出IO FPGA電源設 電源適配器輸入接 電源按鍵開 電壓轉換電 電源輸入輸出接 開發(fā)板使用注意事 FPGA的學習方 第二 軟件 第四章QuartusII軟件的安裝和使 QuartusII軟件的安 USBBlaster驅動安 QuartusII軟件的使 新建工 設計輸 配置工 分析與綜合(編譯 分配引 編譯工 程 SignalTapII軟件的使 第五章軟件的安裝和使 的安 的使 手動仿 自動仿真(聯(lián)合仿真 第三 語法 第六章VerilogHDL語 Verilog概 Verilog簡 為什么需要 Verilog和VHDL區(qū) Verilog和C的區(qū) Verilog基礎知 Verilog的邏輯 Verilog的標識 定 規(guī)范建 Verilog的數(shù)字進制格 Verilog的數(shù)據(jù)類 寄存器類 線網(wǎng)類 參數(shù)類 Verilog的運算 算術運算 關系運算 邏輯運算 條件運算 位運算 移位運算 拼接運算 運算符的優(yōu)先 Verilog程序框 注 關鍵 程序框 Verilog高級知識 阻塞賦值 非阻塞賦值(Non- assign和always區(qū) 帶時鐘和不帶時鐘的 什么是 狀態(tài) Mealy狀態(tài) Moore狀態(tài) 三段式狀態(tài) 模塊化設 Verilog編程規(guī) 編程規(guī)范重要 工程組織形 文件頭輸入輸出定 prameter定 wire/reg定 信號命 always塊描述方 assign塊描述方 空格和 注 模塊例 其他注意事 第四 實戰(zhàn) 第七章流水燈實 LED燈簡 實驗任 硬件設 程序設 驗 第八章按鍵控制LED燈實 按鍵簡 實驗任 硬件設 程序設 驗 第九章按鍵控制蜂鳴器實 蜂鳴器簡 實驗任 硬件設 程序設 驗 第十章觸摸按鍵控制LED燈實 觸摸按鍵簡 實驗任 硬件設 程序設 驗 第十一章靜態(tài)數(shù)碼管顯示實 數(shù)碼管簡 實驗任 硬件設 程序設 驗 第十二章動態(tài)數(shù)碼管顯示實 數(shù)碼管動態(tài)顯示簡 實驗任 硬件設 程序設 驗 第十三章IP核之PLL實 PLLIP核簡 實驗任 硬件設 程序設 驗 第十四章IP核之RAM實 RAMIP核簡 實驗任 硬件設 程序設 驗 第十五章IP核之FIFO實 FIFOIP核簡 實驗任 硬件設 程序設 驗 第十六章UART串口通信實 UART串口簡 實驗任 硬件設 程序設 驗 第十七章RS485串口通信實 RS-485簡 實驗任 硬件設 程序設 驗 第十八章VGA彩條顯示實 VGA簡 實驗任 硬件設 程序設 驗 第十九章VGA方塊移動實 VGA簡 實驗任 硬件設 程序設 驗 第二十章VGA字符顯示實 VGA簡 實驗任 硬件設 程序設 驗 第二十一章VGA顯示實驗(基于 VGA簡 實驗任 硬件設 程序設 驗 第二十二章RGBTFT-LCD彩條顯示實 RGBTFT-LCD簡 實驗任 硬件設 程序設 驗 第二十三章RGBTFT-LCD字符顯示實 RGBTFT-LCD簡 實驗任 硬件設 程序設 驗 第二十四章紅外實 紅外簡 實驗任 硬件設 程序設 驗 第二十五章DS18B20數(shù)字溫度傳感器實 溫度傳感器DS18B20簡 實驗任 硬件設 程序設 驗 第二十六章DHT11數(shù)字溫濕度傳感器實 DHT11簡 實驗任 硬件設 程序設 驗 第二十七章頻率計實 等精度頻率計簡 實驗任 硬件設 程序設 驗 第二十八章EEPROM讀寫測試實 EEPROM簡 實驗任 硬件設 程序設 驗 第二十九章環(huán)境光傳感器實 AP3216C簡 實驗任 硬件設 程序設 驗 第三十章實時時鐘數(shù)碼管顯示實 PCF8563簡 實驗任 硬件設 程序設 驗 第三十一章AD/DA實 PCF8591簡 實驗任 硬件設 程序設 驗 第三十二章音頻環(huán)回實 WM8978簡 實驗任 硬件設 程序設 驗 第三十三章SDRAM讀寫測試實 SDRAM簡 實驗任 硬件設 程序設 驗 第三十四章機實 WM8978簡 實驗任 硬件設 程序設 驗 第三十五章OV7725頭VGA顯示實 OV7725簡 實驗任 硬件設 程序設 驗 第三十六章OV7725頭RGBTFT-LCD顯示實 OV7725簡 實驗任 硬件設 程序設 驗 第三十七章OV5640頭VGA顯示實 OV5640簡 實驗任 硬件設 程序設 驗 第三十八章OV5640頭RGBTFT-LCD顯示實 OV5640簡 實驗任 硬件設 程序設 驗 第三十九章SD卡讀寫測試實 SD卡簡 實驗任 硬件設 程序設 驗 第四十章SD卡顯示實驗(VGA顯示 SD卡-VGA顯示簡 實驗任 硬件設 程序設 驗 第四十一章SD卡顯示實驗(LCD顯示 SD卡-LCD顯示簡 實驗任 硬件設 程序設 驗 第四十二章音樂器實 音樂器簡 實驗任 硬件設 程序設 驗 第四十三章以太網(wǎng)通信實 以太網(wǎng)簡 實驗任 硬件設 程序設 驗 第四十四章以太網(wǎng)傳輸(VGA顯示 SDRAM-VGA顯示簡 實驗任 硬件設 程序設 驗 第四十五章以太網(wǎng)傳輸(LCD顯示 SDRAM-LCD顯示簡 實驗任 硬件設 程序設 驗 第四十六章基于OV7725的以太網(wǎng)傳輸實 以太網(wǎng)傳輸簡 實驗任 硬件設 程序設 驗 第四十七章基于OV5640的以太網(wǎng)傳輸實 以太網(wǎng)傳輸簡 實驗任 硬件設 程序設 驗 第四十八章基于以太網(wǎng)的板對板音頻互傳實 板對板音頻互傳簡 實驗任 硬件設 程序設 驗 第四十九章交通燈實 交通信號燈簡 實驗任 硬件設 程序設 驗 第五十章高速AD/DA實 高速AD/DA簡 實驗任 硬件設 程序設 驗 第五十一章基于FFTIP核的音頻頻譜儀實 FFTIP核簡 實驗任 硬件設 程序設 驗 內容簡不會有任何編譯錯誤。另外,源代碼有我們生成好的sof文件(用于程序的文件),大家 Cyclone系列FPGA先后推出了Cyclone/II/III/IV/V等系列產(chǎn)品,而CycloneV是具有基于ARM的硬核處理系統(tǒng)的SocFPGA型號,對于使用FPGA的通用邏輯設計開發(fā)來說,CycloneIV系列FPGA是更好的選擇。CycloneIV系列FPGA采用經(jīng)過優(yōu)化的低功耗工藝,和前一代相比,拓展了前一代CycloneIIIFPGA低功耗的優(yōu)勢,并且簡化了電源分配網(wǎng)絡,非常具有性價比。CycloneIV系列FPGA具有豐富的型號,如EP4CE6/EP4CE10/EP4CE15等多種型號,開拓者初學者,本手冊將手把手的教你如何使用FPGA的開發(fā)軟件QuartusII, 第一 硬件第一章FPGAFPGA是FieldProgrammableGateArray的簡稱,也就是現(xiàn)場可編程門陣列。它是一種半FPGA自20世紀60年代以來,數(shù)字集成電路經(jīng)歷了從SSI(SmallScaleIntegratedcircuit,小Integratedcircuit,大規(guī)模集成電路)到VLSI(VeryLargeScaleIntegratedcircuit,超第三類是集成電路ASIC(Application-SpecifticIntegratedCircuit)。電路或電子系統(tǒng)設計在一個上,構成單片集成系統(tǒng)。ASIC分為全定制和半定制兩類。的PLD由輸入電路、與陣列、或陣列和輸出電路組成,如圖1.1.1所示,而任意一個組合邏輯1.1.1典型的PLD早期的PLD產(chǎn)品主要有編程陣列邏輯PAL(ProgrammableArrayLogic)和通用陣列邏輯GAL(GenericArrayLogic)。PAL由一個可編程的“與”平面和一個固定的“或”平面構成,補一20世紀80Altera(現(xiàn)已被In In 可編程事業(yè)部——PSG)和Xilinx公司在PAL、GAL等邏輯器件的基礎上,分別推出了復雜可編程邏輯器件CPLD(ComplexProgrammableLogicDeice)和現(xiàn)場可編程門陣列FPGA,同以往的PALGALCPLD/FPGA它替幾至塊用IC。這樣的CPLD/FPGA實際上就是一個子系統(tǒng)部件。這種FGPA能做什么呢?可以毫不夸張地講,F(xiàn)GPA能完成任何數(shù)字器件的功能,上至高性能CPU,傳統(tǒng)的原理圖輸入或硬件描述語言(如VerilogHDL、VHDL)自由地設計一個數(shù)字系統(tǒng)。通過軟件仿真,可以事先驗證設計的正確性。在PCB(電路印制板)完成以后,還可以利用FGPA的優(yōu)點是不需要編程器,編程、調試和都很方便。(ICRIReconfigurable)的PLD或可重配置硬件(RHP:RecontfigurableHardwareProduct)。FPGA的基本結嵌入式塊RAM、豐富的布線資源、底層嵌入功能單元和內嵌硬核等,如下圖所示。可編程IO單 可編程邏輯單功能單硬布資 嵌入塊1.2.1FPGA輸入/輸出(Input/Ouput)單元簡稱I/O單元,它們是與外界電路的接口部分,完成不氣特性下對輸入/輸出信號的驅動與匹配需求,為了使FPGA具有更靈活的應用,目前大(LUT,LookUpTable)和寄存器(Register)組成。FPGA內部查找表一般為4輸入,查找表邏輯單元通常被稱為LE(LogicElement),由一個寄存器加一個LUT構成。Altera大多數(shù)FPGA將10個LE有機地組合在一起,構成更大的功能單元——邏輯陣列模塊(LAB,LogicArray每個部分都由一個寄存器加一個LUT組成,被稱為LC(LogicCell,邏輯單元),兩個LC之間PF(rogramabFunctionUnin,可編程功能單元),它是由8個LUT和8~9個寄存器構成,當然這些可編程邏輯 Altera的CycloneIV器件族的EP4CE10的LUT數(shù)量是10320個,就比前面提到的兩款FPGA規(guī)模略級、時鐘資源、I/O特性、封裝、功能模塊等諸多因素綜合考慮進來。嵌入式塊目前大多數(shù)FPGA都有內嵌的塊RAM(BlockRAM),F(xiàn)PGA內部嵌入可編程RAM模塊,大大地雙口RAM,CAM,F(xiàn)IFO等常用結構。RAM的概念和功能讀者應該非常熟悉,在此不再贅述。講,RAM是一種根據(jù)地址讀,寫數(shù)據(jù)的單元;而CAM和RAM恰恰相反,它返回的是端口數(shù)據(jù)不同器件商或不同器件族的內嵌塊RAM的結構不同,Xilinx常見的塊RAM大小是4kbit和部同時含有3種塊RAM結構,分別是M512RAM,M4KRAM,M9KRAM。目前大多數(shù)FPGA廠商都在FPGA內部集成了DLL或者PLLFPGA產(chǎn)品集成的DLL和PLL資源越來越豐富,功能越來越復雜,精度越來越高。Altera集成的是PLL,Xilinx集成的是LL,Lattice的新型FPGA同時集成了PLL與DLLAltera的PLL模塊分為增強型PLL和快速PLL等。XilinxDLL的模塊名稱為CLKDLL,在高端FPGA中,CLKDLL的增強型模塊為DCMHD配關,動IP文逐步過渡到系統(tǒng)級設計平臺。例如Altera的StratixIV、StratixV等器件族內部集成了DSPII和VirtexIIpro系列FPGA內部集成了PowerPC450的CPUCore和MicroBlazeRISC處理器是EDK和PlatformStudio;Lattice的嵌入式DSP開發(fā)工具是的。內嵌硬FPGA的設計流1.3.1FPGA常用的專業(yè)綜合優(yōu)化工具有Synplicity公司的Synplify/SynplifyPro和MentorGraphics公司它與實際的配置情況還有較大差距。此時應該使用FPGA/CPLD廠商提供的軟件工具,根據(jù)所選的型號,將綜合輸出的邏輯網(wǎng)表適配到具體FPGA/CPLD器件上,這個過程就叫布局和布線(PlaceAndRoute)。因為只有器件開發(fā)商最了解器件的內部結構,所以布局和布線必須合理地適配到FPGA內部的固有硬件結構上,布局的優(yōu)劣對設計的最終實現(xiàn)結果(在速度和面積真的主要目的在于發(fā)現(xiàn)時序(TimingViolation),即不滿足時序約束條件或者器件固有用Quartus內嵌時序分析工具完成靜態(tài)時序分析(STA,StaticTimingyzer),或者使用輯分析儀(LA,Logicyzer)是邏輯設計的主要調試工具,傳統(tǒng)的邏輯功能板級驗證對于相對簡單一些的設計,使用QuartusII內嵌的SignalTapII對設計進行邏輯分析可以較好地解決上述。SignalTapII是一種FPGA片內信號分析工具,它的主要功能是根據(jù)用戶設定的觸發(fā)條件將信號實時地保存到這些BlockRAM中,然后通過JTAG口傳送到計算第二章實驗平臺簡介ALIENTEK開拓者EP4CE10開發(fā)板資源初首先,我們來看開拓者FPGA.1開拓者FPGA1路RS232串口(母)接口,采用SP32321個標準的2.4/2.8/3.5/4.3/7寸MCUTFT-LCD接口,阻/電容觸摸1個電源開關,開發(fā)板的電設計靈活。板上很多資源都可以靈活配置,以滿足不同條件下的使用。其中兩(32M字節(jié))和64Kbit(8K字節(jié))的EEPROM,滿足大內存需求和大數(shù)據(jù)。板載高性能音頻編、百兆網(wǎng)卡、環(huán)境光傳感器以及其它各種接口,滿足各ALIENTEK開拓者FPGARGBTFT-LCD這是開發(fā)板板載的RGBLCD接口(LCD),可以連接各種ALIENTEK的RGBLCD屏模塊,并且和FPGA器(調試器)連接,用于程序或者對程序進行調試。口還可以給開發(fā)板提供電源,但是其最大電流只有500mA,大家在做LCD顯示實驗或者高速輕松應對各種大內存需求場景,比如頭圖像數(shù)據(jù)、數(shù)據(jù)等。這是開發(fā)板自帶的一個8Ω2W的小喇叭(SPEAKER),放音樂。該喇叭由WM8978直接驅動,最大輸出功率可達0.9W這是開發(fā)板的板載蜂鳴器(BEEP),可以實現(xiàn)簡單的/鬧鈴這是開發(fā)板的紅外接收頭(U11),可以實現(xiàn)紅外功能,通過這個接收頭,可以接收開拓者FPGA開發(fā)板給大家配備了一個小巧的紅外,該外觀如圖這是開發(fā)板的一個RTC實時時 (U12),開拓者FPGA開發(fā)板上的實時時 這是開發(fā)板的一個單總線接口(U9),該接口由4個鍍金排孔組成,可以用來接、DAC輸出、DAC輸出、電容觸摸按鍵、DACADC自測等,所有這些功能,你只需要通入通道上,可以實現(xiàn)的功能。流過500mA)。這是開發(fā)板板載的一個外部電源輸(DC_IN),采用標準的直流電源插座。開發(fā)板板載了DC-DC(MP2359),用于給開發(fā)板提供高效、穩(wěn)定的5V電源。由于采用了DC-DC,大家,RS485通信的時候,必須A接A,B接B,否則可能通信不正常!以太網(wǎng)接口接口來驅動VGA顯示器,使其顯示出彩條、以及圖像等。414Kbits的嵌入式資源、23個18×18的嵌入式乘法器、2個通用鎖相環(huán)、10個全局時鐘網(wǎng)絡、8個用戶I/OBANK和最大179個用戶I/O,是一款非常具有性價比的。這個外部的程序在掉電后是不丟失的,這個外部就是FPGA的配置。配置EEPROM1234567OV7725頭RGBTFT-LCD顯示實89OV5640頭RGBTFT-LCD顯示實SD卡顯示實驗(VGA顯示SD卡顯示實驗(LCD顯示VGA顯示實驗(基于以太網(wǎng)傳輸(VGA顯示RGBTFT-LCD以太網(wǎng)傳輸(LCD顯示RGBTFT-LCD基于FFTIP從上表可以看出,ALIENTEKFPGA開發(fā)板的例程是非常豐富的,并且擴展了很多有價值的系統(tǒng)時鐘系統(tǒng)時鐘,頻率系統(tǒng)復位按鍵按鍵按鍵按鍵4個LEDEPCSSPIEPCSSPIEPCSSPIEPCSSPI數(shù)碼管段選數(shù)碼管段選數(shù)碼管段選數(shù)碼管段選數(shù)碼管段選數(shù)碼管段選數(shù)碼管段選數(shù)碼管段選RS485RGBTFT-LCDRGBLCDRGBLCDRGBLCDRGBLCDRGBLCDRGBLCDRGBLCDRGBLCDRGBLCDRGBLCDRGBLCDRGBLCDRGBLCDRGBLCDRGBLCDRGBLCDRGBLCDRGBLCDRGBLCDRGBLCDRGBLCDRGBLCDMCUTFT-LCD命令/數(shù)據(jù)控制(0:命令數(shù)據(jù)單總線IIC總線(EEPROM/環(huán)境光傳感器/RTC實時時鐘/音頻配置ADDAIICADDAIIC音頻SDRAM時SDRAMSDRAMSDRAMSDRAMSDRAMSDRAMBankSDRAMBankSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAMSDRAM頭接口cmoscmoscmoscmoscmoscmoscmos(0:使用引腳XCLK1:頭自帶的晶振提供時鐘cmosIICcmosIICcmoscmoscmoscmoscmoscmoscmoscmosSD卡(SPI模式SD卡(SDIO模式MII輸入數(shù)據(jù)MII輸入數(shù)據(jù)MII輸入數(shù)據(jù)MII輸入數(shù)據(jù)MII輸出數(shù)據(jù)MII輸出數(shù)據(jù)MII輸出數(shù)據(jù)MII輸出數(shù)據(jù)無線NRFSPINRFSPINRFSPINRFSPINRFATK第三章硬件資源詳解開發(fā)板原理圖詳耗和性價比優(yōu)勢,它擁有個邏輯單元、Kbits的嵌入式資源、23個18×18的嵌入式乘法器、2個通用鎖相環(huán)、10個全局時鐘網(wǎng)絡、8個用戶IOBANK和最大179個用戶I/O,了解達到最佳的性價比。具體這些資源在設計中怎么使用,在后續(xù)章節(jié)為大家介紹。一個Bank中的所有IO供電相同,而各個Bank的IO供電可以不同。FPGA的8個I/OBANK的引腳連BANK1、BANK2BANK3、BANK4BANK5、BANK6BANK7、BANK8相環(huán)PLL產(chǎn)生,如SDRAM的驅動時鐘100MHz。JTAGJTAG圖時鐘/復位/圖RS232RS232因此當計算機與FPGA通信時,需要一個電平轉換,這里我們選擇的是SP3232(也可以用RS485圖RS485RS485電平為LVDS電平,也不能直接連接到FPGA,同樣需要電平轉換。這里我們使用SP來做電平轉換,其中R6為終端匹配電阻,而R3和R2,則是兩個偏置電阻,以保證靜VGA圖VGA權電阻網(wǎng)絡全1Rx=3.3× =(????+可得等效電阻Rx=271.6Ω,R=526.3Ω??紤]到所有電阻(使用的是貼片電阻)都必MCULCDALIENTEK開拓者FPGA開發(fā)板板載的MCULCD圖MCULCD圖中MCULCD是一個通用的液晶模塊接口,支持ALIENTEK全系列TFTLCD模塊,包括寸、2.8寸、3.5寸、4.3寸和7寸等尺寸的TFTLCDRGBLCDALIENTEK開拓者FPGA開發(fā)板板載的RGBLCD圖RGBLCD圖中,J1(RGBLCD)就是RGBLCD接口,采用RGB565數(shù)據(jù)格式,并支持觸摸屏(阻是復用的,所以在開發(fā)板上不可以同時使用MCULCD液晶屏和RGBLCD液晶屏!圖就可以用紅外來控制開發(fā)板了。REMOTE_IN為紅外接收頭輸出的信號,即FPGA的紅外輸圖該接口支持DS18B20(溫度傳感器)/DHT11(溫濕度傳感器)圖圖實時時鐘為PCF8563,采用直接供電(VCC3.3)和備用電源供電兩種供電方式,采用圖圖AD/DA開拓者開發(fā)板上板載的AD/DA器件為采用IIC協(xié)議進行通信的PCF8591AIN0/AIN1/AIN2/AIN3為模擬輸入接口,AOUT為模擬輸出接口。ADDA_SCL接在FPGA的E9上,圖 高性能DAC&ADC,可以最高192K@24bit的音頻信號,并且自帶段EQ調節(jié),支持3D音效等功線輸出的驅動,減少了應用時必需的外部組件,直接可以驅動耳機(16Ω@40mW)和喇叭可用于機實驗,實現(xiàn)。PHONE是3.5mm耳機輸出接口,可以用來插耳機。LINE_IN則是線路輸入接口,可以用來外接線路輸入,實現(xiàn)立體聲。IIC_SDA和IIC_SDA是與AP3216C等圖 以太網(wǎng)接口(RJ45圖這里我們選擇的是RTL8201這顆作為FPGA的PHY用于以太網(wǎng)通信。RTL8201是一塊圖圖USB串口/串口1圖中TXD/RXD是相對CH340G來說的,也就是USB串口的發(fā)送和接收引腳。而UART1_RX和則CMOS_PWDN和CMOS_XCLK不需要接(在板上靠左插即可),如果是頭模塊,則需要用到全SDSPIALIENTEK開拓者FPGA板載的SPIFLASH (完全兼容 圖ATK圖/CFR圖引出IOFPGA有6種可選值。CycloneIVFPGA器件供電示意圖如下:圖CycloneIVE由圖可知,開拓者開發(fā)板上的IOBANK統(tǒng)一用3.3V供電,以提供足夠大的供電電壓。另外圖DC_IN用于外部直流電源輸入,輸入電壓(12V)經(jīng)過U16DC-DC轉換為5V電源輸出,圖VBTN為電源適配器輸入的12V電壓經(jīng)電源轉換轉換后得到的5V電壓,VUSB為通過USB圖圖開發(fā)板使用注意事不行,可以通過串口看看LCDID是否正常,再做進一步的分析。半功倍,希望大家細讀!另外ALIENTEK開發(fā)板的其他資料及更新,都可以在技術到,大家可以經(jīng)常去這個獲取更新的信息FPGA的學習方需要知道PLL是用來產(chǎn)生不同頻率的時鐘,如使用SDRAM時需要產(chǎn)生100MHz的驅動時鐘,使用設計才能發(fā)揮硬件的性能,而軟件的精髓在于代碼。學習FPGA也是這樣,VerilogHDL做為一一條指令的串行運行,所以軟件設計語言是基于串行的設計思想,因而在寫VerilogHDL代碼的時候要注意這種差別。另外對于VerilogHDL的基本語法是務必要掌握的,如一般常用的module/endmodule、input/output/inout、wire/regbegin/endposedge/negedge、always/assign、if/else、case/default/endcase/parameter/localparam等關鍵字要清楚它們的作用和區(qū)別。掌握了VerilogHDL的基本語法和VerilogHDL的并行設計思想后,會覺得VerilogHDL和C語言一樣簡單。 第二 軟件上一篇,我們介紹了本手冊的實驗平臺,本篇詳細介紹FPGA的開發(fā)軟件(Quartus第四章QuartusIIFPGA設計流程。本章學習如何安裝QuartusII軟件以及QuartusII軟件的使用方法,為QuartusIIQuartusIISignalTapIIQuartusII軟件的安下來我們安裝QuartusII13.1(以下簡稱Quartus)版本的軟件。首先在開拓者FPGA開發(fā)板資料盤(B盤)→QuartusII_13.1文件夾下找到Quartus的安裝包文件(注意:由于光盤容量有限,F(xiàn)PGA開發(fā)軟件QuartusII和仿真軟件放在B盤),4.1.1所示:我們直接點擊【Next>4.1.3先選中“Iaccepttheagreement”,然后點擊【Next>】,進入如圖4.1.4字符等。接下來點擊【Next>】,進入如圖4.1.5所示頁面。件夾下,軟件在這里已經(jīng)自動檢測出器件,我們保持默認全部勾選的頁面,點擊【Next>】,進入如圖4.1.6所示頁面。一段時間的等待之后,Quartus軟件安裝完成,進入如圖4.1.8所示頁面。至此,Quartus軟件安裝完成,我們直接點擊【Finish4.1.9和圖圖4.1.10Quartus使用頁在LicenseSetupRequired頁面中可以選擇30天試用期,也可以通過正版的Altera的License等途徑來正常使用(請查看安裝包下“安裝說明.txt”)。USBBlaster驅動安USBBlaster是AlteraFPGA的程序器,通過計算機的USB接口對Altera的FPGA和配置進行編程、調試以及等操作。電腦必須在安裝驅動后,USBBlaster才能正常工作,器】,打開后的界面如圖4.2.1所示。4.2.1號,說明電腦已經(jīng)識別到器,但設備的驅動沒有安裝。右擊選中【USB-Blaster】,并選擇【更新驅動程序軟件(P)...】,如圖4.2.2和圖4.2.3所示界面。4.2.24.2.34.2.4Quartus安裝驅動程序,安裝程序完成后進入如圖4.2.6所示頁面。4.2.6從上圖中的頁面,我們可以看到,AlteraUS-Blaster驅動更新完成,然后直接點擊【關閉】即可。這時刷新一下設備管理器,在通用串行總線控制器里出現(xiàn)了AlteraUSB-Blaster,并且圖標前面的感嘆號已經(jīng)沒有了,說明器已經(jīng)可以正常使用了,如圖4.2.7所示。QuartusII軟件的使軟件的使用流程,如圖從上圖可以看出,首先打開Qars軟件,然后新建一個工程,在新建工程的時候,我們可以通過創(chuàng)建工程向導的方式來創(chuàng)建工程;工程建立完成后,我們需要新建一個erlg頂層文件,然后設計的代碼輸入到新建的Vriog頂層文件中,并對工程進行配置;接下來我們就可以對設計文件進行分析與綜合了,此時uats軟件會檢查代碼,如果代碼出現(xiàn)語法錯誤,那么Quartus軟件將會給出相關錯誤提示,如果代碼語法正確,Quartus軟件將會顯示Qurusrus軟件會生成一個用于至PA的.f文件。最后,我們通過工具將編譯生成的sf文至發(fā)板完整個發(fā)程。使用QuartusII軟件。在創(chuàng)建工程之前,我們建議大家在硬盤中新建一個文件夾用于存放自己的Quartus工程,這個工程的路徑名應該只有字母、數(shù)字和下劃線,以字母為首字符,且不要包含中文和其將文件夾命名為flow_led。然后在flow_led文件夾下創(chuàng)建4個子文件夾,分別命名為:docpar、rtl和simdoc文件夾用于存放項目相關的文檔,par文件夾用于存放Quartus軟件的工程文件,rtl文件夾用于存放源代碼,sim文件夾用于存放項目的仿真文件。創(chuàng)建的文件夾如圖接下來啟動QuartusII軟件,我們直接雙擊桌面上的QuartusII13.1(64-bit)(如果是32位系統(tǒng)為QuartusII13.1(32-bit)),打開QuarutsII軟件,QuartusII軟件主界面如圖所示。QuartusIIQuartus軟件默認由菜單欄、、工程文件導航窗口、編譯流程窗口、主編輯窗口以如圖所示。創(chuàng)建工程向導-1、工程名以及指定工程的路徑2、指定工程的頂層文件名34、指定器件型號5、EDA接下來我們可以單擊上圖頁面下面的【Next>創(chuàng)建工程向導-文件名和路徑設置完畢后,我們單擊【Next】按鈕,進入下一個頁面,如圖所示。創(chuàng)建工程向導-加,直接單擊【Next】按鈕,進入如圖所示頁面。創(chuàng)建工程向導-CycloneIVE系列的產(chǎn)品型號較多,為了方便我們在Availabledevice一欄中快速找到我們開發(fā)板的型號,我們在Package一欄中選擇FBGA封裝,PinCount選擇256引腳,Speedgrade速度等級一欄中選擇8,之后在可選擇的器件中只能看見四個符合要求的型號了,選中“EP4CE10F17C8”,接著我們再單擊【Next】按鈕進入如圖所示頁面。創(chuàng)建工程向導-EDA如圖所示,在“EDAToolSettings”頁面中,我們可以設置工程各個開發(fā)環(huán)節(jié)中需要用到的第EDA工具,比如:仿真工具、綜合工具Synplify。由于本實例著具,直接單擊【Next>】進入圖所示頁面。創(chuàng)建工程向導-工程,如果大家需要修改器件的話,直接雙擊工程文件導航窗口中的“CycloneIVE:EP4CE10F17C8”即可,Quartus顯示界面如圖0所示。0所以在DesignFiles一欄中選擇VerilogHDLFile,然后點擊【OK】按鈕。創(chuàng)建Verilog代碼,如圖創(chuàng)建Verilogmodulesys_clk45 67//regreg[23:0]11 mainalways@(posedgesys_clkornegedgesys_rst_n)ifcounter<= elseif(counter<counter<=counter+counter<=always@(posedgesys_clkornegedgesys_rst_n)if led<= elseif(counter== led[3:0]<=led<=33333默認路徑也會是當前的工程文件夾,存放的路徑修改為rtl文件夾下,如圖所口File一欄中找到新建的flow_led.v文件,如圖所示。在我們的工程中,需要配置雙用的管腳。首先我們在Quartus【Assignments】→【Device...該頁面就是可以重新選擇器件頁面,然后點擊【DeviceandPinOptions】按鈕,會彈出時,需要將下圖頁面中所有的引腳都改成UseasregularIO,如果大家不確定工程中是否用到EPCS器件時,可以全部修改。本次實驗只修改了nCEO一欄中,將Useasprogrammingpin修改為UseasregularI/0,設置界面如圖所示。雙用的管腳設置成普通分析與綜合(編譯標,不過全編譯的時間耗時會比較長。接下來我們對工程進行語法檢查,點擊中的【ysis&Synthesis】圖標,圖標的位置如圖所示在編譯過程中如果沒有出現(xiàn)語法錯誤,編譯流程窗口【ysis&Synthesis】前面的問號會變成對勾,表示編譯通過,如圖所示。中點擊【Assignments】→【PinPlanner】或者在中點擊【PinPlanner】的圖標,操作界面如圖所示。配完成后如圖所示。比如分配sys_clk引腳為PIN_E1,先用鼠標點擊sys_clk信號名我們分配完引腳之后,需要對整個工程進行一次全編譯,我們在中選擇【StartCompilation】圖標,操作界面如圖所示。在圖界面中,左側編譯流程窗口全部顯示打鉤,說明工程編譯通過,右側Flow開拓者開發(fā)板的實物圖。首先USBBlaster器一端連接電腦,另一端與開發(fā)板上的操作界面如圖所示。圖打開程序操程序界面如圖所示圖程序界選中USB-在圖的界面中,如果大家的軟件中沒有出現(xiàn)USB-Blaster,請檢查下是不是于程序的sof文件,如圖和圖所示。圖程序界選擇sof接下來我們就可以程序了,點擊【Start】按鈕程序,操作界面如圖圖程序界進度為100%,如圖所示。圖程序完成界圖所示。里的序of件式,發(fā)斷電程將會失如果們要程斷不lahFasFPA接,F(xiàn)GA會在上電后自動lsh中的程序,這個過程不需要我們編寫驅動代碼和人為干預,只要通過Gc文即可需注意的是,文件是軟自動生的,而是soicQatsFleovetProgrammingFiles…】,操作界面如圖0和圖1所示。1sof文件轉換jic容EPCS16);然后選中窗口中的“FlashLoader”點擊右邊的【AddDevice..】按鈕出現(xiàn)如圖2選擇開發(fā)板器件(這里我們開拓者開發(fā)板為CycloneIVEEP4CE10)點擊【OK】按鈕。然后選中“SOFData”,點擊右邊的按鈕【Addfile….】如圖3和圖4所示界3添加sof4添加Sof置界面如圖4所示。4點擊【Generate5擊菜單欄【Tools】下的【Programmer】(如果界面關閉了的話),選中.sof文件,點擊左側按鈕【Delete】刪去之前添加的sof文件,如圖6所示。圖 點擊左邊的【AddFile..】找到“output_files”文件下的“output_file.jic7添加jic8JIC如圖9所示。圖9程序界】,如圖和圖0取消勾選【Program/Configure1勾選【EraseSignalTapII軟件的使SignalTapII全稱SignalTapIILogicyzer,是第二代系統(tǒng)級調試工具,可以捕獲瑣了。SignalTapII邏輯分析儀克服了以上所有的缺點,其借用了傳統(tǒng)邏輯分析儀的理念FPGA資源來構成嵌入式邏輯分析儀。SignalTapII不需要將待測信號引出至I/O上,也不需要FPGA開發(fā)工具QuartusII軟件中。接下來我們使用SignalTapII(以下簡稱SignalTap)軟件來分析工程。我們就以之前的Quartus工程為例進行調試和分析,如果工程關閉了的話,可以通過雙擊“flow_led.qpf”來4.4.14.4.2作界面如圖4.4.3所示。4.4.3打開SignalTap4.4.4列表和觸發(fā)條件的空白區(qū)域,得到如圖4.4.5所示頁面。4.4.5我們在節(jié)點發(fā)現(xiàn)器中首先將Filer設置為SignalTapII:pre-synthesis,再點擊【List】和led添加至右側SelectedNodes一欄中,添加方法是直接雙擊NodeFound一欄的信號名,如果需要刪除的話,可以直接雙擊SelectedNodes一欄的信號名,接下來我們點擊【OK】按鈕,完成信號的添加,如圖4.4.6所示。4.4.6號可以觀察,有些不可以,這是因為reg與wire被Quartus軟件優(yōu)化掉了,導致無法使用對于reg信號則加/*synthesisnoprune*/,如下所示:wirewire[23:0]counter/*synthesisreg[23:0]counter/*synthesis法如圖4.4.7所示。4.4.74.4.8這個頁面和添加待觀察信號的頁面一樣,系統(tǒng)時鐘(sys_clk)作為采樣數(shù)據(jù)的時4.4.9和圖.104.4.11出是否將分析文件添加至工程的頁面,我們直接點擊【YES】,如圖4.4.12所示。4.4.12文件,這個文件就是我們剛才添加至工程中的分析文件,如圖4.4.13所示。接下來我們需要對工程進行全編譯,點擊圖4.4.13所示的全編譯的圖標,開始編譯工程。4.4.13Quartsu工程編譯完成后,首先將USBBlaster器一端連接電腦,另一端連接開發(fā)板的JTAG接則會出現(xiàn)如圖4.4.14所示頁面。從該圖中我們可以看出,SignalTap軟件已經(jīng)成功識別到我們的器和開發(fā)板(如果沒有識別到,請檢查電腦和開發(fā)板是否通過USBBlaster連接完成,并且開發(fā)板電源已經(jīng)打開)。接下來我們給開發(fā)板程序,這里需要注意的是,SignalTap軟件也是可以給開發(fā)板所在路徑output_files文件夾下的flow_led.sof,選中后點擊Open按鈕,如圖4.4.15所說頁中的開始分析圖標,操作界面如圖4.4.16所示。圖4.4.16SignalTap圖圖4.4.17是到的波形圖,可以通過點擊和右擊波形圖的方式進行放大和縮小,數(shù)據(jù)中counter信號名,右擊選擇【BusDisplayFormat】→【UnsignedDecimal4.4.18和圖4.4.19所示。4.4.18右擊sys_rst_n信號的TriggerConditions方框內的圖標,如圖4.4.20所示。再次點擊中的運行一次的工具按鈕,SignalTap軟件界面如圖4.4.21所示.22SignalTapII第五 軟件的安裝和使的調試環(huán)境,具有個性化的圖形界面和用戶接口,為用戶加快調試提供強有力的,它是的安有幾種常見的版本:SE(SystemEditionP(alEdition和OE(OrignalEquipmentManufactuce,即原始設備制造商),其中SE是的版本,而集成在Altera、首先在開拓者FPGA開發(fā)板資料盤(B盤)→文件夾下找到的安裝包文圖 雙擊運行“-win64-10.4-se.exe”文件,進入如圖5.1.2所示的 5.1.2我們直接點擊【Next>.35.1.4 5.1.55.1.65.1.7圖5.1.8添加到Path變然了如果經(jīng)過整個的指導操作還是使用不了,不妨卸載了選擇“Yes“試試,一般選擇5.1.9安裝硬件安全Key5.1.105.1.11未安裝License使用軟件需要添加License,請多多支持正版。至此,安裝完成的使安裝完軟件之后,接下來我們再來介紹一下的使用流程。在介紹5.2.1FPGA QuartusII調用進行仿真,這種情況也就是我們通常所說的自動仿真或者聯(lián)合仿真。 接雙擊桌面上的軟件圖標,打開軟件,在中選擇File->Change在彈出的框中選 工程名,就能夠知道它是用來做什么的了。這里我們把工程命名為“flow_led_tb”,也就是在流水燈模塊名“flow_led”后面添加“_tb”?!癙rojectLocation”是工程路徑,可以根據(jù)需要把工程保存到不同的位置。因為前一步驟更改的時候已經(jīng)做了選擇,所以這里保持和我們選擇“CreateNewFile”(創(chuàng)建新文件),`timescale1ns/1ns 3module 4//parameterparameterT=20; //regreg reg //wirewire 15 maininitial = #(T+1) always#(T/2)sys_clk=sy_clflow_ledu0_flow_led (sys_clk )3436定義,因為不同的模塊如果時間單位不同可能會為仿真帶來一些問題。代碼的第1行的在開始編譯之前,有一點需要注意,我們在QuartusII軟件中實現(xiàn)的功能是LED流水燈效0編譯的方式有兩種:CompileSelected(編譯所選)和CompileAll(編譯全部)。編譯【Compile】中找到這兩個命令,也可以在快捷或者在工作區(qū)中的右鍵彈出的菜單中找到這兩個命令。下面我們單擊CompileAll(編譯全部),如下圖所示。12→【StartSimulation...3從配置仿真功能頁面中我們可以看出,該頁面中包含6個,分別是:Design、VHDL、Verilog、Libraries、SDF和Others。對于這6個,我們用的最多的是Design、Libraries和SDF這三個了,下面我們就來簡單的介紹一下這3個,其余的我們一般用不到,首先看一下Design是 單元開始仿真,此時被選中的仿真單元的名字就會出現(xiàn)在下方的DesignUnit(s)位置。支持同時對多個文件進行仿真,可以使用Ctrl和Shift鍵來選擇多個文件,被選中的全部文件名都會出現(xiàn)在DesignUni(s區(qū)。在DesignUni(s區(qū)域的右側是Resolutin選項,這里可以選擇仿真的時間精度。在進行仿真的候,有一最小的時單,1ns1ns為單位進行真,對小于1ns發(fā)生的信號變化不予考慮或不予顯示。因而這個最小時間單位也就是仿真的時間精依照仿真設計文件中指定的最小時間刻度4在該中,我們可以設置搜索庫。SearchLibraries和SearchLibrariesFirst的功能基本一致,唯一不同的是SearchLibrariesFirst中指定的庫會在指定的用戶庫之前被搜索?,F(xiàn)在我們來看一下SDF,如圖5所示。用于時序仿真的重要文件。SDFFiles區(qū)域用來添加SDF文件,可以選擇Add按鈕進行添加,選5SDFOptions區(qū)域設置SDF文件的warning和error信息。第一個“DisableSDFwarning”是禁用SDF警告,第二個“ReduceSDFerrorstowarnings”是把所有的SDF錯誤信息變成警至此,這三個我們就介紹完了,接下來我們在Design頁面中選擇work庫中的鼠標右鍵單擊“u0_flow_led”,選擇“AddWave”89012自動仿真(聯(lián)合仿真
3在調用過程中,QuartusII會幫我們完成中的所有操作,我們只需要分析最后的仿真結果。下面我們就以“QuartusII安裝和使用”章節(jié)中我們創(chuàng)建的QuartusII軟件工程為例,首先我們打開之前的QuartusII工程,在菜單欄中找到【Tool】→【Options】按鈕,如選擇Options圖添 路徑設置完成以后,我們點擊【OK】返回我們的QuartusII軟件界面。選擇Settings圖選 我們之前創(chuàng)建工程的時候,由于在QuartusII軟件中沒有用到仿真,所以這里設置VerilogHDL”。設置完成之后,我們點擊【OK】返回QuartusII軟件頁面中。編寫過我們還是介紹一下如何使用QuartusII軟件生成TestBench模板,方便編寫仿真文件。在QuartusII軟件頁面的菜單欄中,我們找到【Processing】→【Start】→【StartTestBenchTemplateWriter】按鈕,如下圖所示:生成TestBench生成TestBench從畫橫線處我們可以看到QuartusII軟件已自動給我們生成了一個TestBench模板并顯示該模塊的存放路徑,我們只需要找到這個模板并稍作修改就能直接使用了。我們在工程下`timescale`timescale1ns/1module////generalpurpose//testvectorinputregreg//9wire//assignstatements(ifflow_ledi1////portmap-connectionbetweenmasterportsand171819#100#1000===2426always#10sys_clk=~_l2我們選中“CompileTestbench”,然后單擊后面的【TestBenches】按鈕,則出現(xiàn)如下圖所示的“TestBenches”窗口:添加Test接著我們單擊【New】按鈕,則會出現(xiàn)如下圖所示的“NewTestBenchSettings”0設置TestBenche在該頁面,TestBench文件名輸入到“Testbenchname”,將TestBench頂層模塊名輸入到“Toplevelmoduleintestbench”的編輯欄中,因為一般而言TestBench文件名和頂層模塊名相同,所以這里只用在“Testbenchname”這一欄輸入即可,軟件自動同步添加“Toplevelmoduleintestbench”。接著我們在“Testbenchandsimulationfiles”列表框中添加TestBench仿真文件,這里我們選擇QuartusII生成的TestBench模板文件“flow_led_tb.vt”。當然了,也可以選擇在手動仿真節(jié)里編寫的“flow_led_tb.v”文件。1添加TestBench圖所示的“Testbenches”窗口的列表中出現(xiàn)了剛才添加的仿真文件相關信息。2成功添加Test到QuartusII軟件界面。我們在QuartusII軟件界面中的菜單欄中找到【Tools】→【RunSimulationTool【RTLSimulation3開始RTL5至此 第三 語法上一篇,我們介紹了軟件篇,本篇詳細介紹FPGA的開發(fā)語言:VerilogHDL。通過3、Verilog編程規(guī)范。通過本篇的學習,希望大家能掌握VerilogHDL語言,并能使用Verilog第六章eilHDLVerilogHDL(HardwareDescriptionLanguage)是在用途最廣泛的C語言的基礎上發(fā)展起來的一種硬件描述語言,具有靈活性高、易學易用等特點。VerilogHDL可以在較短的時間Verilog概層次的模塊來表示極其復雜的數(shù)字系統(tǒng)。然后利用電子設計自動化(DA)工具,逐層進行仿真驗證,再把其中需要變?yōu)閷嶋H電路的模塊組合,經(jīng)過自動綜合工具轉換到門級電路網(wǎng)表。接ASIC或FPGA。Verilog語言最初是于1983年由GatewayDesignAutomation公司為其模擬器產(chǎn)品開發(fā)的硬件建模語言。由于他們的模擬、仿真器產(chǎn)品的廣泛使用,VerilogHDL作為一種便于使用且實用的語言逐漸為眾多設計者所接受。在一次努力增加語言普及性的活動中,VerilogHDL語為什么需要1987年成為標準,而Verilog是1995
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 獨立董事2025年度履職評價與激勵措施合同3篇
- 二零二五年度禾青幼兒園教玩具采購與幼兒園設施維護合同3篇
- 二零二五搬家公司合同模板:搬家保險責任與賠償條款2篇
- 二零二五版物流行業(yè)預付款擔保合同2篇
- 二零二五版搬家服務與家政服務融合合同樣本2篇
- 二零二五年度蔬菜電子商務合同:線上銷售平臺與賣家之間的規(guī)則2篇
- 二零二五版汽車零部件購銷合同標準及售后服務模板3篇
- 二零二五年度國際教育機構合作辦學合同3篇
- 二零二五年度高壓變壓器安裝及安全防護技術合同3篇
- 二零二五版社保繳納與工傷保險待遇保障合同3篇
- 《項目施工組織設計開題報告(含提綱)3000字》
- ICU常見藥物課件
- CNAS實驗室評審不符合項整改報告
- 農民工考勤表(模板)
- 承臺混凝土施工技術交底
- 臥床患者更換床單-軸線翻身
- 計量基礎知識培訓教材201309
- 中考英語 短文填詞、選詞填空練習
- 阿特拉斯基本擰緊技術ppt課件
- 初一至初三數(shù)學全部知識點
- 新課程理念下的班主任工作藝術
評論
0/150
提交評論