//------------------------------------------------------------------------------------//此程序?yàn)锳DC轉(zhuǎn)換程序,可以選擇向ADC0BUSY寫(xiě)1或用定時(shí)器0,1,2,3作為ADC的啟動(dòng)信號(hào)。////------------------------------------------------------------------------------------//頭文件定義//------------------------------------------------------------------------------------//#include <c8051f330.h> #include <stdio.h> //-----------------------------------------------------------------------------// 定義16位特殊功能寄存器//----------------------------------------------------------------------------- sfr16 ADC0 = 0xbd; sfr16 TMR0RL = 0xca; sfr16 TMR1RL = 0xca; sfr16 TMR2RL =0xca; sfr16 TMR3RL =0xca; sfr16 TMR0 = 0xCC; sfr16 TMR1 = 0xCC; sfr16 TMR2 = 0xcc; sfr16 TMR3 = 0xcc; //-----------------------------------------------------------------------------// 全局變量定義//-----------------------------------------------------------------------------char i;int result; //-----------------------------------------------------------------------------//定義常量//-----------------------------------------------------------------------------#define SYSCLK 49000000 #define SAMPLE_RATE 50000 //------------------------------------------------------------------------------------// 定義函數(shù)//------------------------------------------------------------------------------------void SYSCLK_Init (void);void PORT_Init (void);void Timer0_Init (int counts);void Timer1_Init (int counts);void Timer2_Init (int counts);void Timer3_Init (int counts);void ADC0_Init(void);void ADC0_ISR (void);void ADC0_CNVS_ADC0h(void);//------------------------------------------------------------------------------------// 主程序//------------------------------------------------------------------------------------ void main (void) { int ADCRESULT[50] ; int k; PCA0MD &= ~0x40; // 禁止看門(mén)狗 SYSCLK_Init (); PORT_Init (); Timer0_Init (SYSCLK/SAMPLE_RATE); //Timer1_Init (SYSCLK/SAMPLE_RATE); //選擇相應(yīng)的啟動(dòng)方式 //Timer2_Init (SYSCLK/SAMPLE_RATE); //Timer3_Init (SYSCLK/SAMPLE_RATE); ADC0_Init(); EA=1; while(1) { //ADC0_CNVS_ADC0h(); k=ADC0; ADCRESULT[i]=result; //此處設(shè)斷點(diǎn),觀察ADCRESULT的結(jié)果 } }
上傳時(shí)間: 2013-10-13
上傳用戶:SimonQQ
基于VHDL的FPGA和Nios II 實(shí)例精煉【作者:劉福奇;出版社:北京航空航天大學(xué)出版社】(本書(shū)優(yōu)酷視頻地址:http://www.youku.com/playlist_show/id_5882081.html) 內(nèi)容簡(jiǎn)介:本書(shū)分為4個(gè)部分:Quartus Ⅱ軟件的基本操作、VHDL語(yǔ)法介紹、FPGA設(shè)計(jì)實(shí)例和Nios Ⅱ設(shè)計(jì)實(shí)例;總結(jié)了編者幾年來(lái)的FPGA設(shè)計(jì)經(jīng)驗(yàn),力求給初學(xué)者或是想接觸這方面知識(shí)的讀者提供一種快速入門(mén)的方法;適合電子相關(guān)專業(yè)的大學(xué)生、FPGA的初學(xué)者以及對(duì)FPGA有興趣的電子工程師。初學(xué)者可以按照步驟學(xué)習(xí)。本書(shū)中提及到時(shí)間計(jì)算問(wèn)題,不光提出有時(shí)間戳的方法, 還介紹了一種通過(guò)讀取定時(shí)器的寄存器來(lái)計(jì)算時(shí)間的方法。其實(shí),有人認(rèn)為,本書(shū)最好的部分是:DMA的實(shí)現(xiàn)說(shuō)明(本書(shū)從3個(gè)方面講述了DMA的使用)。現(xiàn)在學(xué)習(xí)Verilog HDL的人或許比較多,但是用VHDL的人可以學(xué)習(xí)下,這本書(shū)還是很不錯(cuò)的。
上傳時(shí)間: 2014-07-10
上傳用戶:米米陽(yáng)123
Verilog_HDL的基本語(yǔ)法詳解(夏宇聞版):Verilog HDL是一種用于數(shù)字邏輯電路設(shè)計(jì)的語(yǔ)言。用Verilog HDL描述的電路設(shè)計(jì)就是該電路的Verilog HDL模型。Verilog HDL既是一種行為描述的語(yǔ)言也是一種結(jié)構(gòu)描述的語(yǔ)言。這也就是說(shuō),既可以用電路的功能描述也可以用元器件和它們之間的連接來(lái)建立所設(shè)計(jì)電路的Verilog HDL模型。Verilog模型可以是實(shí)際電路的不同級(jí)別的抽象。這些抽象的級(jí)別和它們對(duì)應(yīng)的模型類型共有以下五種: 系統(tǒng)級(jí)(system):用高級(jí)語(yǔ)言結(jié)構(gòu)實(shí)現(xiàn)設(shè)計(jì)模塊的外部性能的模型。 算法級(jí)(algorithm):用高級(jí)語(yǔ)言結(jié)構(gòu)實(shí)現(xiàn)設(shè)計(jì)算法的模型。 RTL級(jí)(Register Transfer Level):描述數(shù)據(jù)在寄存器之間流動(dòng)和如何處理這些數(shù)據(jù)的模型。 門(mén)級(jí)(gate-level):描述邏輯門(mén)以及邏輯門(mén)之間的連接的模型。 開(kāi)關(guān)級(jí)(switch-level):描述器件中三極管和儲(chǔ)存節(jié)點(diǎn)以及它們之間連接的模型。 一個(gè)復(fù)雜電路系統(tǒng)的完整Verilog HDL模型是由若干個(gè)Verilog HDL模塊構(gòu)成的,每一個(gè)模塊又可以由若干個(gè)子模塊構(gòu)成。其中有些模塊需要綜合成具體電路,而有些模塊只是與用戶所設(shè)計(jì)的模塊交互的現(xiàn)存電路或激勵(lì)信號(hào)源。利用Verilog HDL語(yǔ)言結(jié)構(gòu)所提供的這種功能就可以構(gòu)造一個(gè)模塊間的清晰層次結(jié)構(gòu)來(lái)描述極其復(fù)雜的大型設(shè)計(jì),并對(duì)所作設(shè)計(jì)的邏輯電路進(jìn)行嚴(yán)格的驗(yàn)證。 Verilog HDL行為描述語(yǔ)言作為一種結(jié)構(gòu)化和過(guò)程性的語(yǔ)言,其語(yǔ)法結(jié)構(gòu)非常適合于算法級(jí)和RTL級(jí)的模型設(shè)計(jì)。這種行為描述語(yǔ)言具有以下功能: · 可描述順序執(zhí)行或并行執(zhí)行的程序結(jié)構(gòu)。 · 用延遲表達(dá)式或事件表達(dá)式來(lái)明確地控制過(guò)程的啟動(dòng)時(shí)間。 · 通過(guò)命名的事件來(lái)觸發(fā)其它過(guò)程里的激活行為或停止行為。 · 提供了條件、if-else、case、循環(huán)程序結(jié)構(gòu)。 · 提供了可帶參數(shù)且非零延續(xù)時(shí)間的任務(wù)(task)程序結(jié)構(gòu)。 · 提供了可定義新的操作符的函數(shù)結(jié)構(gòu)(function)。 · 提供了用于建立表達(dá)式的算術(shù)運(yùn)算符、邏輯運(yùn)算符、位運(yùn)算符。 · Verilog HDL語(yǔ)言作為一種結(jié)構(gòu)化的語(yǔ)言也非常適合于門(mén)級(jí)和開(kāi)關(guān)級(jí)的模型設(shè)計(jì)。因其結(jié)構(gòu)化的特點(diǎn)又使它具有以下功能: - 提供了完整的一套組合型原語(yǔ)(primitive); - 提供了雙向通路和電阻器件的原語(yǔ); - 可建立MOS器件的電荷分享和電荷衰減動(dòng)態(tài)模型。 Verilog HDL的構(gòu)造性語(yǔ)句可以精確地建立信號(hào)的模型。這是因?yàn)樵赩erilog HDL中,提供了延遲和輸出強(qiáng)度的原語(yǔ)來(lái)建立精確程度很高的信號(hào)模型。信號(hào)值可以有不同的的強(qiáng)度,可以通過(guò)設(shè)定寬范圍的模糊值來(lái)降低不確定條件的影響。 Verilog HDL作為一種高級(jí)的硬件描述編程語(yǔ)言,有著類似C語(yǔ)言的風(fēng)格。其中有許多語(yǔ)句如:if語(yǔ)句、case語(yǔ)句等和C語(yǔ)言中的對(duì)應(yīng)語(yǔ)句十分相似。如果讀者已經(jīng)掌握C語(yǔ)言編程的基礎(chǔ),那么學(xué)習(xí)Verilog HDL并不困難,我們只要對(duì)Verilog HDL某些語(yǔ)句的特殊方面著重理解,并加強(qiáng)上機(jī)練習(xí)就能很好地掌握它,利用它的強(qiáng)大功能來(lái)設(shè)計(jì)復(fù)雜的數(shù)字邏輯電路。下面我們將對(duì)Verilog HDL中的基本語(yǔ)法逐一加以介紹。
標(biāo)簽: Verilog_HDL
上傳時(shí)間: 2014-12-04
上傳用戶:cppersonal
The Virtex™-4 user access register (USR_ACCESS_VIRTEX4) is a 32-bit register thatprovides direct access to bitstream data by the FPGA fabric. It is useful for loadingPowerPC™ 405 (PPC405) processor caches and/or other data into the FPGA after the FPGAhas been configured, thus achieving partial reconfiguration. The USR_ACCESS_VIRTEX4register is programmed through the bitstream with a command that writes a series of 32-bitwords.
標(biāo)簽: USR_ACCESS PowerPC XAPP 719
上傳時(shí)間: 2013-12-23
上傳用戶:yuanwenjiao
FSM 分兩大類:米里型和摩爾型。 組成要素有輸入(包括復(fù)位),狀態(tài)(包括當(dāng)前狀態(tài)的操作),狀態(tài)轉(zhuǎn)移條件,狀態(tài)的輸出條件。 設(shè)計(jì)FSM 的方法和技巧多種多樣,但是總結(jié)起來(lái)有兩大類:第一種,將狀態(tài)轉(zhuǎn)移和狀態(tài)的操作和判斷等寫(xiě)到一個(gè)模塊(process、block)中。另一種是將狀態(tài)轉(zhuǎn)移單獨(dú)寫(xiě)成一個(gè)模塊,將狀態(tài)的操作和判斷等寫(xiě)到另一個(gè)模塊中(在Verilog 代碼中,相當(dāng)于使用兩個(gè)“always” block)。其中較好的方式是后者。其原因 如下: 首先FSM 和其他設(shè)計(jì)一樣,最好使用同步時(shí)序方式設(shè)計(jì),好處不再累述。而狀態(tài)機(jī)實(shí)現(xiàn)后,狀態(tài)轉(zhuǎn)移是用寄存器實(shí)現(xiàn)的,是同步時(shí)序部分。狀態(tài)的轉(zhuǎn)移條件的判斷是通過(guò)組合邏輯判斷實(shí)現(xiàn)的,之所以第二種比第一種編碼方式合理,就在于第二種編碼將同步時(shí)序和組合邏輯分別放到不同的程序塊(process,block) 中實(shí)現(xiàn)。這樣做的好處不僅僅是便于閱讀、理解、維護(hù),更重要的是利于綜合器優(yōu)化代碼,利于用戶添加合適的時(shí)序約束條件,利于布局布線器實(shí)現(xiàn)設(shè)計(jì)。顯式的 FSM 描述方法可以描述任意的FSM(參考Verilog 第四版)P181 有限狀態(tài)機(jī)的說(shuō)明。兩個(gè) always 模塊。其中一個(gè)是時(shí)序模塊,一個(gè)為組合邏輯。時(shí)序模塊設(shè)計(jì)與書(shū)上完全一致,表示狀態(tài)轉(zhuǎn)移,可分為同步與異步復(fù)位。
標(biāo)簽: 狀態(tài)
上傳時(shí)間: 2015-01-02
上傳用戶:aa17807091
設(shè)計(jì)工程師通常在FPGA上實(shí)現(xiàn)FIFO(先進(jìn)先出寄存器)的時(shí)候,都會(huì)使用由芯片提供商所提供的FIFO。但是,由于其通用性使得其針對(duì)性變差,某些情況下會(huì)變得不方便或者將增加硬件成本。此時(shí),需要進(jìn)行自行FIFO設(shè)計(jì)。本文提供了一種基于信元的FIFO設(shè)計(jì)方法以供設(shè)計(jì)者在適當(dāng)?shù)臅r(shí)候選用。這種方法也適合于不定長(zhǎng)包的處理。
標(biāo)簽: FPGA FIFO 信元 設(shè)計(jì)方法
上傳時(shí)間: 2013-11-05
上傳用戶:ch3ch2oh
設(shè)計(jì)了一種基于FPGA純硬件方式實(shí)現(xiàn)方向?yàn)V波的指紋圖像增強(qiáng)算法。設(shè)計(jì)采用寄存器傳輸級(jí)(RTL)硬件描述語(yǔ)言(Verilog HDL),利用時(shí)分復(fù)用和流水線處理等技術(shù),完成了方向?yàn)V波指紋圖像增強(qiáng)算法在FPGA上的實(shí)現(xiàn)。整個(gè)系統(tǒng)通過(guò)了Modelsim的仿真驗(yàn)證并在Terasic公司的DE2平臺(tái)上完成了硬件測(cè)試。設(shè)計(jì)共消耗了3716個(gè)邏輯單元,最高處理速度可達(dá)92.93MHz。以50MHz頻率工作時(shí),可在0.5s以內(nèi)完成一幅256&amp;#215;256指紋圖像的增強(qiáng)處理。
標(biāo)簽: FPGA 方向 指紋 圖像增強(qiáng)算法
上傳時(shí)間: 2013-11-06
上傳用戶:rishian
摘要:介紹用一片GAL16V8實(shí)現(xiàn)的模≤2n可編程計(jì)數(shù)器。它是基于“最大長(zhǎng)度移位寄存器式計(jì)數(shù)器”的原理設(shè)計(jì)而成的.電路簡(jiǎn)單可靠.同時(shí)介紹一種由它組成的實(shí)用電路——由GAL實(shí)現(xiàn)時(shí)、分、秒計(jì)時(shí)的數(shù)字鐘電路。 關(guān)鍵詞:GAL 最大長(zhǎng)度移位寄存器式計(jì)數(shù)器
標(biāo)簽: GAL 器件 可編程計(jì)數(shù)器
上傳時(shí)間: 2013-11-12
上傳用戶:comua
第二部分:DRAM 內(nèi)存模塊的設(shè)計(jì)技術(shù)..............................................................143第一章 SDR 和DDR 內(nèi)存的比較..........................................................................143第二章 內(nèi)存模塊的疊層設(shè)計(jì).............................................................................145第三章 內(nèi)存模塊的時(shí)序要求.............................................................................1493.1 無(wú)緩沖(Unbuffered)內(nèi)存模塊的時(shí)序分析.......................................1493.2 帶寄存器(Registered)的內(nèi)存模塊時(shí)序分析...................................154第四章 內(nèi)存模塊信號(hào)設(shè)計(jì).................................................................................1594.1 時(shí)鐘信號(hào)的設(shè)計(jì).......................................................................................1594.2 CS 及CKE 信號(hào)的設(shè)計(jì)..............................................................................1624.3 地址和控制線的設(shè)計(jì)...............................................................................1634.4 數(shù)據(jù)信號(hào)線的設(shè)計(jì)...................................................................................1664.5 電源,參考電壓Vref 及去耦電容.........................................................169第五章 內(nèi)存模塊的功耗計(jì)算.............................................................................172第六章 實(shí)際設(shè)計(jì)案例分析.................................................................................178 目前比較流行的內(nèi)存模塊主要是這三種:SDR,DDR,RAMBUS。其中,RAMBUS內(nèi)存采用阻抗受控制的串行連接技術(shù),在這里我們將不做進(jìn)一步探討,本文所總結(jié)的內(nèi)存設(shè)計(jì)技術(shù)就是針對(duì)SDRAM 而言(包括SDR 和DDR)。現(xiàn)在我們來(lái)簡(jiǎn)單地比較一下SDR 和DDR,它們都被稱為同步動(dòng)態(tài)內(nèi)存,其核心技術(shù)是一樣的。只是DDR 在某些功能上進(jìn)行了改進(jìn),所以DDR 有時(shí)也被稱為SDRAM II。DDR 的全稱是Double Data Rate,也就是雙倍的數(shù)據(jù)傳輸率,但是其時(shí)鐘頻率沒(méi)有增加,只是在時(shí)鐘的上升和下降沿都可以用來(lái)進(jìn)行數(shù)據(jù)的讀寫(xiě)操作。對(duì)于SDR 來(lái)說(shuō),市面上常見(jiàn)的模塊主要有PC100/PC133/PC166,而相應(yīng)的DDR內(nèi)存則為DDR200(PC1600)/DDR266(PC2100)/DDR333(PC2700)。
標(biāo)簽: DRAM 內(nèi)存模塊 設(shè)計(jì)技術(shù)
上傳時(shí)間: 2013-10-18
上傳用戶:宋桃子
標(biāo)簽: SmartPRO USB 編程器 驅(qū)動(dòng)
上傳時(shí)間: 2013-11-08
上傳用戶:CHENKAI
蟲(chóng)蟲(chóng)下載站版權(quán)所有 京ICP備2021023401號(hào)-1