把相對成熟的技術(shù)應(yīng)用到某些特定領(lǐng)域如通訊,視頻,信息處理等等開發(fā)出滿足行業(yè)需要并能被行業(yè)客戶接受的產(chǎn)品這方面主要是FPGA技術(shù)和專業(yè)技術(shù)的結(jié)合問題,另外還有就是與專業(yè)客戶的界面問題產(chǎn)品設(shè)計還包括專業(yè)工具類產(chǎn)品及民用產(chǎn)品。FPGA因為具備接口,控制,功能IP,內(nèi)嵌CPU等特點有條件實現(xiàn)一個構(gòu)造簡單,固化程度高,功能全面的系統(tǒng)產(chǎn)品設(shè)計將是FPGA技術(shù)應(yīng)用最廣大的市場,具有極大的爆發(fā)性的需求空間產(chǎn)品設(shè)計對技術(shù)人員的要求比較高。為解決相關(guān)FPGA工程師及愛好者提供相關(guān)實際案例和電路參考,電子發(fā)燒友網(wǎng)隆重整合推出《FPGA設(shè)計實例全攻略》系列,后期會陸續(xù)推出相關(guān)章節(jié),以饗讀者,敬請關(guān)注。
參閱相關(guān)系列文章
FPGA設(shè)計實例全攻略(一)
一、遠程在線更新FPGA程序的方法
1 概述
現(xiàn)場可編程門陣列(Field Programmable Gate Array,F(xiàn)PGA)器件具有高密度、低功耗、高速、高可靠性等優(yōu)點,在航空航天、通信、工業(yè)控制等方面得到了大量應(yīng)用。FPGA的處理器分為軟核和硬核,并且軟核處理器具有高度的靈活性和可配置性。
由于FPGA器件采用的是SRAM工藝,在斷電的情況下FPGA內(nèi)的配置數(shù)據(jù)將丟失,所以需要非易失的存儲器來結(jié)合FPGA完成嵌入式系統(tǒng)的設(shè)計。EPCS(Erasable Programmable Configurable Serial)Flash屬于串行接口Flash,具有接口簡單、體積小、配置方便的特點,通常用來存儲FPGA的配置文件和NiosII的軟件可執(zhí)行代碼。在經(jīng)過合理的配置后,系統(tǒng)在上電后就可以從EPCSFlash中讀取這些文件來啟動整個系統(tǒng)。
為了能使系統(tǒng)得到更靈活的應(yīng)用,充分發(fā)揮FPGA的靈活性、高效性,F(xiàn)PGA的軟硬件程序都需要方便的更新和升級功能;而當形成產(chǎn)品后,通過JTAG和NiosII IDE工具來聯(lián)合完成對EPCS Flash的更新燒寫很不方便。為此,本文結(jié)合Altera公司提供的工具,提出了一種遠程在線更新FPGA配置文件和NiosII程序文件的方法。
2 系統(tǒng)硬件結(jié)構(gòu)
系統(tǒng)硬件結(jié)構(gòu)如圖1所示。系統(tǒng)主要有上位機系統(tǒng)、FPGA系統(tǒng)、EPCS Flash三個主體部分。上位機系統(tǒng)提供人機交互的部分,F(xiàn)PGA系統(tǒng)包括NiosII處理器、EPCS控制器、網(wǎng)絡(luò)及串行接口和其他外部接口,EPCSFlash主要用于存儲FPGA的配置文件和Nios程序映像文件。上位機系統(tǒng)通過FPGA集成的網(wǎng)絡(luò)及串行接口來完成通信工作。
FPGA采用Altera公司的CycloneIII系統(tǒng)的EP3C40F48417N芯片。它具有低功耗、高集成度、易于使用的特性。EPCS Flash采用Altera公司的EPCS16SI16N芯片,它支持多種可配置的時鐘源,最高支持100 MHz的外部時鐘源,具有16 Mb的存儲空間,足夠滿足一般的FPGA配置文件和Nios程序文件的存儲需要。
3 更新程序處理流程
更新FPGA的配置文件和NiosII的應(yīng)用程序的流程如圖2所示。
本方法把由NiosII IDE生成的FPGA配置文件和NiosII程序文件合并,并編程為一個可以直接執(zhí)行的、包含F(xiàn)PGA配置文件和NiosII程序文件的二進制BIN文件。然后把該文件通過X-modem協(xié)議由上位機系統(tǒng)傳輸給NiosII的應(yīng)用程序。NiosII的應(yīng)用程序接收到完整的BIN文件后,把該BIN文件寫入到EPCS Flash中。最后,Nios II的應(yīng)用程序停止看門狗,程序重新啟動,即完成了FPGA的遠程在線更新程序的過程。
4 合并程序文件
Nios II的啟動要經(jīng)歷兩個過程:
?、貴PGA器件本身的配置過程。如果內(nèi)部邏輯中使用了NiosII,則配置完成的FPGA中包含有NiosII軟核CPU。
?、贜iosII本身的應(yīng)用過程。一旦FPGA配置成功后,NiosII就被邏輯中的復位電路復位,從reset地址開始執(zhí)行代碼。
Nios II IDE將FPGA的配置文件(.sof文件)和應(yīng)用程序(.elf文件)轉(zhuǎn)成flash格式文件,轉(zhuǎn)換后的flash格式文件是一種S-Record格式數(shù)據(jù),包含如下區(qū)域:《type》《length》《address》《data》《checksum》。各字段的意思分別如下:《type》表示記錄的類型;《length》表示數(shù)據(jù)的長度;《address》表示數(shù)據(jù)寫入的起始地址,該字段的長度取決于《type》的取值;《data》表示存儲的數(shù)據(jù);《checknum》表示校驗位。
配置文件和應(yīng)用程序可能有多個段,每個段前面都插有一個“程序記錄”。一個“程序記錄”由2個32位的數(shù)據(jù)構(gòu)成,一個是32位的整數(shù),另一個是32位的地址,分別表示程序段本身的長度和程序段的運行時地址。其存儲布局如圖3所示。
為了在更新程序時把FPGA配置文件和Nios II應(yīng)用程序一起更新,把FPGA配置文件和Nios II應(yīng)用程序合并成一個文件,并且把合并后的Flash格式的文件轉(zhuǎn)換成不需要地址解碼就能直接執(zhí)行的二進制BIN文件。具體處理流程如圖4所示。
在合并程序的過程中,去掉了flash文件中的長度、目的地址等用于解析程序的信息,并且把程序映像由字符格式轉(zhuǎn)換為二進制格式。合并后的BIN文件包含F(xiàn)PGA配置文件和Nios II應(yīng)用程序,并且Nios II應(yīng)用程序緊挨在FPGA配置文件的后面,其存儲布局如圖5所示。
5 Nios II更新程序模塊處理
Nios II程序中的更新程序模塊主要負責從上位機接收合并后的可執(zhí)行BIN文件,并把該BIN文件寫入EPCSFlash,處理流程如圖6所示。
5.1 程序文件的傳輸
Nios II應(yīng)用程序中的更新程序模塊和上位機系統(tǒng)采用X-modem協(xié)議傳輸程序文件,X-modem協(xié)議是一種網(wǎng)口和串口通信中廣泛用到的異步傳輸協(xié)議。
如果在程序傳輸過程中出現(xiàn)錯誤,更新程序模塊能夠通過設(shè)置超時來退出更新程序的狀態(tài)。
5.2 對EPCS Flash的讀寫
由于EPCS Flash的串行配置器件定義了特殊的讀寫協(xié)議,所以Nios II程序只能通過Altera提供的HAL API(Application Program Inter face,應(yīng)用程序接口)來完成讀寫Flash。打開、關(guān)閉Flash設(shè)備的API為:alt flash open_dev()和alt_flash_close_dev()。操作Flash讀寫
的API為:alt_read_flash()和alt_write_flash_block()。清除Flash的API為alt_erase_falsh_block()。
結(jié)語
本文以提高FPGA遠程更新程序的方便性為目標,提出了一種基于EPCS Flash的遠程在線更新FPGA程序的方法,從而在應(yīng)用中能夠使基于FPGA的產(chǎn)品更加方便地維護升級。
二、片上芯片SoC挑戰(zhàn)傳統(tǒng)測試方案
SoC廠商如何在提高復雜器件傳輸速度的同時降低測試成本?
隨著先進的集成電路(IC)設(shè)計方法和高密度生產(chǎn)技術(shù)的使用,半導體廠商能夠把不同的數(shù)字和模擬電路集成在極小芯片上,其尺寸之小、功能之全尚無先例,我們稱之為系統(tǒng)芯片。盡管具有先進的設(shè)計和制造能力,可是IC廠商在對這些多元器件進行快速而又低成本地批量生產(chǎn)時,面對 空前的挑戰(zhàn)。當把若干功能單元結(jié)合在一個單獨器件上時,今天的SoC器件為減少批量生產(chǎn)時間和測試成本,向傳統(tǒng)的測試方法發(fā)起挑戰(zhàn)。結(jié)果是,廠商們將更廣泛地研究新方法,這些新方法通過在設(shè)計和測試之間的有效平衡,提供了一個更有效地從事SoC設(shè)計、生產(chǎn)和測試的方案,并能夠同時做到減少其生產(chǎn)時間和測試費用。
特殊的挑戰(zhàn)
就SoC廠商來說,在一個競爭激烈的市場上,消費者對其在功能、性能和費用等方面的要求,又給他們平添了持續(xù)的壓力。SoC廠商將復雜的數(shù)字核與模擬功能集成在單芯片中,在功能和性能上能夠應(yīng)對市場多種用途的需求??墒窃谥圃爝^程中,SoC廠商發(fā)現(xiàn)設(shè)計和測試復雜性經(jīng)常會導致故障。隨 工藝技術(shù)的研制費用接近100萬美元,每次故障都使得成本負擔雪上加霜,并且拖延交貨期,加劇經(jīng)濟受損。工程師們發(fā)現(xiàn)在這樣的壓力下,無法充分發(fā)揮先進的工藝技術(shù)和制造水平的潛力。
對測試工程師來說,他們的測試面對 非常嚴峻的挑戰(zhàn),一是受測器件龐大的數(shù)量,二是多種受測電路復雜的程度。然而,測試工程師必須保證以最優(yōu)化的測試程序,采用最少最便宜的測試設(shè)備,在短時間內(nèi)完成測試。測試工程師還需要功能更強的混合信號測試儀來處理高端界面。而傳統(tǒng)的連續(xù)開發(fā)方法中測試故障的費用上升首先導致器件開發(fā)延遲,SoC廠商也將為此增加測試時間和費用及生產(chǎn)成本。
SoC測試中當前的困境大多是由于采用早期幾代IC對測試要求不高而造成的。最新的設(shè)計雖提高了易測程度但仍缺乏應(yīng)對當前流程中普遍問題的能力。在傳統(tǒng)的連續(xù)開發(fā)流程中(圖1a),設(shè)計工程師設(shè)計時所掌握的有關(guān)信息很少,可利用的測試設(shè)備也有限,因而可能在最終開始測試后很久才會發(fā)現(xiàn)所遇到的問題,造成額外費用并拖延時間。
SoC器件目前不斷增加的復雜程度,促使主要的廠商青睞采用更有效的SoC生產(chǎn)導向設(shè)計測試流程法(圖1b)。該方法使各個測試小組分工明確,測試研發(fā)工作平行展開。各測試小組集中攻關(guān)的結(jié)果是同步拿出最優(yōu)化的設(shè)計方案和更有效的測試程序。工程師們在轉(zhuǎn)移到大批量生產(chǎn)之前,就已充分掌握了器件性能。制造商可以有效平衡高配置的SoC平臺的靈活性,使其滿足不同新產(chǎn)品類型組合的需要,在實現(xiàn)快速批量供應(yīng)的同時,全面降低測試成本。
早期試驗進展
新測試流程建立在測試開發(fā)工具和設(shè)計工藝技術(shù)之上。多年來,工程師們倚賴專用的內(nèi)部工具將仿真向量轉(zhuǎn)變成測試設(shè)備使用的模式。SoC顯著地增加了這一轉(zhuǎn)變過程的復雜性。今天,更加先進的測試工具能夠與主要的電子設(shè)計自動化(EDA)供應(yīng)商所提供的流程一起運行。加上先進的循環(huán)運算法則,這些工具能夠把與各種復雜程度的電路相關(guān)聯(lián)的數(shù)據(jù)組合起來,并且制作一個單獨的測試模式和定時文檔。手頭掌握了這些統(tǒng)一的結(jié)果,測試工程師的工作會更有效。
圖1 生產(chǎn)測試和工程確認的常規(guī)流程(a)和平行流程(b)
新SoC生產(chǎn)導向設(shè)計測試流程法的一個最重要特點是它能夠在開發(fā)循環(huán)的早期校驗測試程序。過去,測試工程師需要獲得第一塊芯片和可以排除故障的測試設(shè)備后才可以開始測試工作,這將把產(chǎn)量拖沿數(shù)星期。而今,由于具有了當前先進的測試開發(fā)環(huán)境,測試工程師能夠利用數(shù)字式虛擬測試儀(DVT)的性能,提前進行調(diào)試試驗。虛擬測試法最適合數(shù)字電路。但EDA軟件現(xiàn)有的能力已有很大提高,EDA公司與測試公司已有很好的協(xié)作。因此,設(shè)計和測試工程技術(shù)能力擴展至模擬設(shè)計也就有了保障。
經(jīng)過改進的測試開發(fā)能力對所有SoC廠商都至關(guān)重要,對于無生產(chǎn)線的IC設(shè)計公司尤為重要。由于相比較而言,IC設(shè)計公司對外界的依賴程度高,因為在設(shè)計和測試之間存在一個地理上的差距,存在 交流困難問題。經(jīng)由外界的設(shè)計方案會加劇測試難題對生產(chǎn)延期和生產(chǎn)費用的影響。虛擬測試法讓IC設(shè)計公司在其現(xiàn)有的設(shè)計環(huán)境下進行調(diào)試試驗,以保證測試程序運轉(zhuǎn)正常并能更好地s了解潛在的測試設(shè)備問題。
交互式工程設(shè)計確證
對不知名的半導體公司和集成器件制造商(IDMs)來說,復雜的設(shè)計和先進的工藝技術(shù)的結(jié)合,要求提高與自動測試儀(ATE)上進行的生產(chǎn)測試截然不同的測試驗證能力。隨 工藝技術(shù)達到0.13μm或更細的線寬,先進的器件展示出不斷增加的效能,事實上也限制了多數(shù)生產(chǎn)用自動測試儀(ATE)在檢測更細微故障時的有效性。對許多廠商而言,復雜的SoC已致使傳統(tǒng)的測試方法愈加無效,并給生產(chǎn)和成本問題造成嚴重的瓶頸影響。
優(yōu)化的工程設(shè)計驗證測試系統(tǒng)的出現(xiàn),提供了與生產(chǎn)測試儀明顯有別的能力,達到了大幅度提高生產(chǎn)量的要求。工程技術(shù)系統(tǒng)為生產(chǎn)測試儀是非結(jié)果的判斷提供了詳細的原因分析。事實上,今天領(lǐng)先的工程設(shè)計驗證系統(tǒng)具有的記憶特性,能夠保留所有器件管腳上的完整數(shù)據(jù),以便工程師更容易地對器件功能做解剖研究--這是傳統(tǒng)的生產(chǎn)用自動測試儀(ATE)所無法達到的。
生產(chǎn)用自動測試儀(ATE)適合批量生產(chǎn)的需要,有賴于高度優(yōu)化的測試程序來確保采用最少的測試設(shè)備和花費最短的時間。相比較,工程技術(shù)驗證系統(tǒng)則適合交互式分析,為測試裝置和測量提供圖形用戶界面(GUI)。工程師們在此環(huán)境下可以更有效地進行為最優(yōu)化設(shè)計和調(diào)試所采用的交互式的假設(shè)分析。用在生產(chǎn)過程中,則有助于加速故障分析。當今復雜的SoC需要更加精密復雜的診斷設(shè)備,如皮秒圖象電路分析(picosecond imaging circuit anal-ysis),激光電壓探針(laser voltage probe)和電子束系統(tǒng)(e-beam systems)。領(lǐng)先的工程設(shè)計系統(tǒng)直接向這類設(shè)備提供界面;工程師們借此利用外部的探頭裝置就能夠測試器件。
圖2 測試程序的核查準備
低成本生產(chǎn)測試
SoC生產(chǎn)技術(shù)的成功,依靠的是廠商以最低的生產(chǎn)成本實現(xiàn)大量的生產(chǎn)能力。隨 制造商創(chuàng)造了結(jié)合先進數(shù)字電路和模擬功能的SoC,就需要不斷提高自動測試儀(ATE)的強大功能。芯片內(nèi)功能提高了數(shù)字數(shù)據(jù)傳輸速率。而今,防火墻、千兆赫茲以太網(wǎng)和圖形加速接口等功能都集于芯片上,因此需要測試儀的數(shù)據(jù)速率要達到800Mbps或更高。制造商們正在尋找適應(yīng)性強和容易升級的操作平臺以滿足新要求,而非過去那樣追加投資,開發(fā)新一代產(chǎn)品。
對于混合信號的SoC,可配置的ATE系統(tǒng)在經(jīng)濟上可以承受大批量生產(chǎn)對測試功能和靈活性的要求。模塊式結(jié)構(gòu)是這些系統(tǒng)的核心,為制造商提供了一個適應(yīng)性強的高性能共享測試平臺。就IC電路的總體而言,大功率多性能ATE能夠滿足SoC日益增加的功能條件,如管腳的增加、速度的提高、對液體冷卻的需求等。好在先進的冷卻設(shè)計可以選用空氣冷卻高速高功耗的CMOS電路,而降低了ATE的復雜性。
系統(tǒng)設(shè)計和檢測儀表性能的改善顯著地減少了ATE的費用,加上應(yīng)用了各種程序開發(fā)工具語言,增加了測試開發(fā)環(huán)境的功效。工程師們利用共享圖形用戶界面(GUI)和現(xiàn)有測試程序模板,使現(xiàn)有的測試程序符合特定的測試用途,從而提高了生產(chǎn)效率。這種以模板為基礎(chǔ)的方法把測試開發(fā)時間削減了數(shù)周,這對于把握SoC市場稍縱即逝的機會格外重要。
在產(chǎn)業(yè)開始復蘇的今天,對市場機會的快速應(yīng)變能力是SoC制造業(yè)重于一切的要務(wù)。在現(xiàn)有條件下取得最大效益的能力,對于制造商仍然非常關(guān)鍵。系統(tǒng)兼容性在高效的開發(fā)環(huán)境及生產(chǎn)測試設(shè)備中是一個日益重要的特性,將有助于使生產(chǎn)能力達到最高水平。廠商通過有效配置所有測試設(shè)備,把測試轉(zhuǎn)移到最有效的平臺上進行,不斷滿足生產(chǎn)條件的變化要求。
三、基于FPGA與外部SRAM的大容量數(shù)據(jù)存儲
1 引言
我們將針對FPGA中內(nèi)部BlockRAM有限的缺點,提出了將FPGA與外部SRAM相結(jié)合來改進設(shè)計的方法,并給出了部分VHDL程序。
2 硬件設(shè)計
這里將主要討論以Xilinx公司的FPGA(XC2S600E-6fg456)和ISSI公司的SRAM(IS61LV25616AL)為主要器件來完成大容量數(shù)據(jù)存儲的設(shè)計思路。
FPGA即現(xiàn)場可編程門陣列,其結(jié)構(gòu)與傳統(tǒng)的門陣列相似,大量的可編程邏輯塊( CLB , Configurable Logic Block ) 在芯片中央按矩陣排列,芯片四周為可編程輸入/輸出塊( IOB , Input / Output Block),CLB行列之間及CLB和IOB之間具有可編程的互連資源(ICR,InterConnectResource)。CLB、IOB和ICR都由分布在芯片中的SRAM靜態(tài)存儲單元控制,SRAM中的數(shù)據(jù)決定FPGA的功能,這些數(shù)據(jù)可以在系統(tǒng)加電時自動或由命令控制從外部存儲器裝入。
在進行數(shù)據(jù)存儲時,可直接將數(shù)據(jù)寫入FPGA內(nèi)部的BlockRAM中,在一定程度上減少了FPGA的資源分配。但FPGA內(nèi)部自帶的RAM塊畢竟是有限的,當需進行大容量數(shù)據(jù)存儲時這有限的RAM塊是遠遠不能滿足系統(tǒng)設(shè)計要求的。此時,就需要將FPGA與外部RAM相結(jié)合完成大容量數(shù)據(jù)存儲。具體硬件電路如圖一所示:
3 IS61LV25616AL功能簡介
IS61LV25616AL是Integrated Silicon Solution公司(ISSI)的一款容量為256K×16的且引腳功能完全兼容的4Mb的異步SRAM,可為Xilinx公司的Spartan-2E系列FPGA提供高性能、高消費比的外圍存儲。除了256K×16異步SRAM外,ISSI還提供128K×16、512K×16、256K×8、512K×8和1M×8的異步SRAM。 IS61LV25616AL引腳結(jié)構(gòu)框圖如圖二所示:
3.1 主要特征
?。?)工作電壓:3.3伏;
?。?)訪問時間:10ns、12ns;
?。?)芯片容量:256K×16;
?。?)封裝形式:44引腳TSOPII封裝,也有48引腳mBGA和44引腳SOJ封裝;
?。?)采用0.18μm技術(shù)制造。
3.2 引腳功能
?。?)A0~A17:18位的地址輸入線;
?。?)IO0~IO15:16位的三態(tài)數(shù)據(jù)輸入輸出線;
?。?)寫控制線;
?。?)片選信號;
?。?)輸出使能信號;
?。?)低字節(jié)、高字節(jié)使能信號;
?。?)~(6)的控制線均為低電平有效。
3.3 控制邏輯電路設(shè)計
如圖三所示,控制邏輯由FPGA來實現(xiàn)。主要包括讀地址產(chǎn)生器、寫地址產(chǎn)生器、讀寫時鐘信號產(chǎn)生器及讀寫控制等幾部分。下面分別加以講述。
(1)寫地址產(chǎn)生器:由于設(shè)計時采用256K×16的SRAM,故有18位地址,寫地址產(chǎn)生器用18位計數(shù)器實現(xiàn)??客獠繒r鐘驅(qū)動,每進行一次寫操作后,讀寫控制單元產(chǎn)生計數(shù)脈沖,使其增1,直到18位計數(shù)器計滿再循環(huán)寫入地址為0的空間。
?。?)讀地址產(chǎn)生器同上,也采用18位計數(shù)器實現(xiàn),根據(jù)系統(tǒng)要求,每隔一定的采樣周期將讀地址指針偏移一定偏移量,并從該位置讀取數(shù)據(jù)。
?。?)讀寫地址選擇器由于讀寫地址復用管腳,因此在讀寫操作時,必須選通相應(yīng)的地址。這就需要由FPGA控制芯片上的等控制信號來對SRAM進行讀寫的操作。
?。?)此外,由于讀寫之間的切換,數(shù)據(jù)線上的數(shù)據(jù)在切換瞬間如不加處理會出現(xiàn)混亂現(xiàn)象。因此,為避免讀、寫操作發(fā)生沖突,數(shù)據(jù)線呈三種狀態(tài),讀數(shù)據(jù)、寫數(shù)據(jù)及高阻態(tài)。在從寫到讀的過程中需給數(shù)據(jù)線上送高阻態(tài)。
?。?)當需要對SRAM進行寫操作時,由FPGA控制產(chǎn)生寫地址選通信號,該選通信號為一單脈沖形式,如圖四中該脈沖下降沿觸發(fā)SRAM,告知開始對RAM進行寫操作,使FPGA輸出寫地址,同時給數(shù)據(jù)線上送數(shù)據(jù)。在寫操作期間,片選信號始終保持低電平,而寫地址選通信號上升沿到來時使寫地址計數(shù)器增1。以此類推,通過寫地址選通信號高低電平變化完成對數(shù)據(jù)依次寫入。需要注意的是,地址線和數(shù)據(jù)線在為高時可同時賦新值,但只有在變低后賦予數(shù)據(jù)線上的新值才有效。
對SRAM進行讀操作相對較簡單,在進行讀操作期間,始終為低電平,始終為高電平。每進行一次讀操作,地址按系統(tǒng)要求變化一次。同時注意,地址的變化時刻總要先于數(shù)據(jù)的變化時刻。圖五為RAM讀操作時序。
以下是一段用VHDL語言描述的控制RAM的讀寫操作時序的程序代碼:
程序中,在進行讀寫操作時,片選使能信號CE_SRAM及輸出使能信號OE_SRAM始終為低電平。
第0時刻到第2時刻在進行寫操作:第0時刻地址線addr_SRAM和數(shù)據(jù)線data_SRAM同時賦新值,控制線WE_SRAM、LB_SRAM、UB_SRAM要經(jīng)歷一個窄脈沖的變化過程,RAM在獲取到此控制線下降沿信息后,便知開始進行寫操作。需要注意的是,雖然數(shù)據(jù)在第0時刻已賦到數(shù)據(jù)線上,但因為寫操作是控制線低電平有效,所以數(shù)據(jù)線上真正發(fā)生數(shù)據(jù)更新是在控制線變?yōu)榈碗娖街?,因此,?shù)據(jù)線上的實際更新時刻是在第2個時刻。
第3、4狀態(tài)是進行讀操作:在讀寫轉(zhuǎn)換時刻,也就是在第3時刻如前所述需給數(shù)據(jù)線上送高阻態(tài)。這樣,讀取數(shù)據(jù)的時序關(guān)系由系統(tǒng)時鐘進行控制,在第3時刻給地址線上送要讀取的地址,第4時刻將數(shù)據(jù)端口上的數(shù)據(jù)送出。這里需注意的是,讀取數(shù)據(jù)要比讀取地址晚一個時刻。從而,完成了對外部RAM的讀寫操作控制。
4結(jié)論
該系統(tǒng)已應(yīng)用在羅蘭—c導航接收機的信號處理中。實驗證明,此設(shè)計可靠穩(wěn)定地完成了大容量高速異步數(shù)據(jù)存儲,進一步提高了系統(tǒng)的性能。
四、視頻信號發(fā)生器設(shè)計方案
引言
在光電測量系統(tǒng)中,需要圖像處理器進行圖像采集、處理。目前檢測圖像處理器的信號發(fā)生器多是標準的模擬視頻輸出,如文獻提出的模擬視頻發(fā)生器,有的雖然能產(chǎn)生數(shù)字視頻但內(nèi)容是固定的,如果對內(nèi)容進行更改則需要對數(shù)字視頻信號發(fā)生器重新編程以達到要求,比較麻煩,不能滿足日益復雜的要求。因此靈活改變視頻內(nèi)容的數(shù)字視頻信號發(fā)生器的研制變得十分迫切。本文提出一種數(shù)字視頻信號發(fā)生器的設(shè)計方法,此方法可以同時得到LVDS和CamerLink制式的視頻,供數(shù)字化圖像處理器檢測使用。本文提出的設(shè)計方法除可以脫離計算機獨立使用外,如果想實時更改信號發(fā)生器輸出視頻的各項參數(shù),無需重新改寫程序,只需把該信號發(fā)生器通過串口連接到計算機上,即可通過人機交互的方式對視頻中的目標灰度、背景灰度,目標大小、目標運動速度進行更改。此外目標的背景還可以從板卡上的SDRAM中選取。與以往的視頻信號發(fā)生器相比,本文提出的信號發(fā)生器除能產(chǎn)生多種數(shù)字化視頻外,還能靈活更改所產(chǎn)生的視頻各項參數(shù),因此具有一定應(yīng)用價值。
1 硬件組成
數(shù)字視頻發(fā)生器主要卣FPGA模塊、單片機模塊、串行通信模塊、TTL轉(zhuǎn)L,VDS模塊、FTL轉(zhuǎn)CamerL,ink模塊、SDRAM模塊組成,整個系統(tǒng)框圖如圖1所示。
1.1 工作原理
數(shù)字式視頻信號主要由行同步、幀同步、像素時鐘、圖像數(shù)據(jù)組成。其中行同步?jīng)Q定一行的起始位置,幀同步?jīng)Q定一幀圖像的起始位置,像素時鐘決定一行有多少列圖像數(shù)據(jù)。根據(jù)數(shù)字圖像的組成,可以看出如果想要生成一幅數(shù)字圖像,必須包含上述要素。其行幀信號同圖像的關(guān)系如圖2所示,其中VSYN表示幀同步信號,HSYN表示行同步信號。
其中圖像的采集是從行同步上升沿開始后,按像素時鐘采集的。
本文根據(jù)數(shù)字視頻產(chǎn)生所需的各要素進行信號發(fā)生器的設(shè)計。主要通過FPGA產(chǎn)生行同步信號、幀同步信號、像素時鐘;通過單片機+串口通信模塊實現(xiàn)目標參數(shù)的更改,并把更改后的參數(shù)傳遞給FPGA,供FPGA產(chǎn)生相應(yīng)運動的視頻信號;通過視頻制式轉(zhuǎn)換模塊把FPGA生成的視頻數(shù)據(jù)及視頻控制信號轉(zhuǎn)換成LVDS和CamerLink制式的數(shù)字視頻信號。
2 FPGA控制模塊
FPGA具有高集成度、高可靠性以及開發(fā)工具智能化等特點,目前逐步成為復雜數(shù)字電路設(shè)計的理想首選。此外FPGA可以通過編程實現(xiàn)硬件的邏輯功能,大大減少了硬件設(shè)計的復雜程度。因此本文以FPGA為核心器件產(chǎn)生視頻信號,這里選用ALTERA公司的SycloncII系列的EP2C8 F25618N,采用VHDL語言編程生成與數(shù)字視頻有關(guān)的各個信號,與單片機通信接收視頻修改參數(shù)的模塊及得到SDRAM內(nèi)部圖像的模塊。其結(jié)構(gòu)框圖如圖3所示。
信號發(fā)生器上電后,F(xiàn)PGA通過與單片機通信的模塊得到初始視頻各項參數(shù),根據(jù)參數(shù)進行目標大小、目標灰度、目標運動速度、背景灰度的設(shè)置,然后根據(jù)各項設(shè)置產(chǎn)生視頻數(shù)據(jù),F(xiàn)PGA幀同步模塊、行同步模塊、像素時鐘模塊分別產(chǎn)生幀同步、行同步、像素時鐘,圖像數(shù)據(jù)按以上控制信號從FPGA中發(fā)送出去。
在本文中FPGA各功能模塊根據(jù)基準時鐘生成幀同步、行同步、像素時鐘。這里以50M時鐘為基準時鐘信號,根據(jù)圖像處理平臺對輸入信號的要求,設(shè)計的幀同步高電平占33ms,低電平占1.2ms,行同步高電平占35 μm,低電平占8.4μm。這里把50M基準時鐘輸入像素時鐘模塊經(jīng)過鎖相后依然以50M的時鐘頻率輸出,作為像素時鐘。由于一行較多,可在程序中進行限位,控制每行像素數(shù)。像素的產(chǎn)生主要有兩種方式,一種是通過與單片機通信得到目標像素灰度及背景像素灰度,根據(jù)這兩種灰度產(chǎn)生像素數(shù)據(jù)。另一種方式是通過從連接在FPGA上的SDRAM內(nèi)讀出圖像作為背景,從與單片機通信得到目標灰度,共同形成像素數(shù)據(jù)。
2.1 單片機控制模塊及通信模塊
在本設(shè)計中單片機作為通信管理芯片。它主要實現(xiàn)與計算機的通信,更改信號發(fā)生器所產(chǎn)生信號的各個參數(shù),把各個參數(shù)經(jīng)過整合送給FPGA,以便FPGA根據(jù)參數(shù)控制目標的運動速度、目標大小、目標灰度及背景灰度。為了保證信號發(fā)生器能夠方便地和計算連接,實現(xiàn)人機交互,實時更改產(chǎn)生的視頻信號,并且從通信穩(wěn)定可靠出發(fā),這里采用RS232通信接口。但是因為計算機每次發(fā)的數(shù)據(jù)較多,這里沒有直接應(yīng)用電平轉(zhuǎn)換芯片把計算機和單片機的串口連在一起,而是通過一片16C650把電平轉(zhuǎn)換芯片和單片機連在一起,這樣的好處在于16C650內(nèi)部具有32字節(jié)的FIFO,可起到數(shù)據(jù)緩存的作用,使單片機能夠穩(wěn)定可靠地接收數(shù)據(jù)。
2.2 視頻制式轉(zhuǎn)換模塊
因為FPGA產(chǎn)生的視頻信號為TTL電平,而目前數(shù)字視頻信號以LVDS制式和CamerLink制式為主,因此需要進行電平轉(zhuǎn)換。這里主要采用把FPGA產(chǎn)生的TTL電平的數(shù)字視頻信號接入SN75LVDS387得到LVDS制式的視頻信號,同時可把該TTL數(shù)字信號接入DS90CR285得到CamerLink制式信號。
3 軟件設(shè)計
本文軟件設(shè)計主要對單片機和FPGA進行編程。其中對單片機編程主要應(yīng)用C語言進行編程,對FPGA主要應(yīng)用VHDL語言編寫。其中單片機程序框圖如圖4所示。FPGA程序流程框圖如圖5所示。
4 結(jié)論
本文介紹了一種基于FPGA的數(shù)字視頻信號發(fā)生器,具有一定應(yīng)用價值。
評論