基于FPGA技術(shù)實(shí)現(xiàn)62256Sram芯片的讀寫控制及校驗(yàn)器的QuartusII程序設(shè)計(jì)_第1頁
基于FPGA技術(shù)實(shí)現(xiàn)62256Sram芯片的讀寫控制及校驗(yàn)器的QuartusII程序設(shè)計(jì)_第2頁
基于FPGA技術(shù)實(shí)現(xiàn)62256Sram芯片的讀寫控制及校驗(yàn)器的QuartusII程序設(shè)計(jì)_第3頁
基于FPGA技術(shù)實(shí)現(xiàn)62256Sram芯片的讀寫控制及校驗(yàn)器的QuartusII程序設(shè)計(jì)_第4頁
基于FPGA技術(shù)實(shí)現(xiàn)62256Sram芯片的讀寫控制及校驗(yàn)器的QuartusII程序設(shè)計(jì)_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、EDA實(shí)驗(yàn)報(bào)告基于FPGA技術(shù)實(shí)現(xiàn)62256 Sram芯片的讀寫控制及校驗(yàn)器的Quartus II程序設(shè)計(jì)指導(dǎo)教師: 學(xué)號姓名: 實(shí)驗(yàn)小組成員: 一、實(shí)驗(yàn)?zāi)康募俺绦蛟O(shè)計(jì)性能要求:如右圖所示,為62256芯片關(guān)鍵圖,管腳功能介紹如下:A0 A14        地址總線(Address) D0 /D7          輸入/輸出口(Input/output) CS    

2、60;              端口選擇(Chip select) WE                 輸入始能(Write enable) OE           

3、0;      輸出始能(Output enable) VCC               電源始能(Power supply) VSS                 接地(Ground)性能要求:進(jìn)行芯片進(jìn)行工作室,

4、CS,OE端口應(yīng)置低電平。進(jìn)行寫操作時(shí),WE端口信號應(yīng)為負(fù)脈沖,進(jìn)行讀操作時(shí)WE端口應(yīng)置高電平。所需設(shè)計(jì)的控制校驗(yàn)功能如下:正確輸出62256芯片所需的使能端信號。在進(jìn)行校驗(yàn)工作時(shí),正確的控制讀寫控制端口WE的電平狀態(tài),并順利輸入與輸出地址信號及數(shù)據(jù)信號,并進(jìn)行實(shí)時(shí)校驗(yàn)。校驗(yàn)的具體要求是,共分為兩步:第一,向62256芯片中輸入地址與數(shù)據(jù)信號,其中奇數(shù)地址輸入55,偶數(shù)地址輸入AA。直到向所有內(nèi)存(32KB)中寫入數(shù)據(jù)后,進(jìn)行讀操作。此時(shí)將讀入的數(shù)據(jù)與芯片內(nèi)實(shí)時(shí)運(yùn)算的,內(nèi)存中應(yīng)該有的數(shù)值進(jìn)行比較,若值相同則輸出為1,否則輸出為0。第二步基本與第一步相同,只需改變奇地址輸入為AA,偶地址輸入為5

5、5。二、程序設(shè)計(jì)部分1.設(shè)計(jì)方案框圖:數(shù)據(jù)時(shí)鐘信號校驗(yàn)結(jié)果控制地址SRAM62256存儲器校驗(yàn)電路復(fù)位控制2.程序狀態(tài)轉(zhuǎn)移圖:Addr<=2fh/DoutAddr<=2fhAddr>2fhAddr>2fh3.程序流程圖:初始化檢驗(yàn)步數(shù)Quan=0YNNNwr 負(fù)脈沖addr<=addr+1奇地址data_reg<=55偶地址data_reg<=AAwr=1addr=addr+1奇地址data_reg<=55偶地址data_reg<=AAaddr>2fhaddr>2fhdata=data_reg驗(yàn)證正確dout=1驗(yàn)證錯(cuò)誤dout

6、=0結(jié)束YYYNNNwr 負(fù)脈沖addr<=addr+1奇地址data_reg<=AA偶地址data_reg<=55wr=1addr=addr+1奇地址data_reg<=AA偶地址data_reg<=55addr>2fhaddr>2fhdata=data_reg驗(yàn)證正確dout=1驗(yàn)證錯(cuò)誤dout=0結(jié)束YYYN4Verilog HDL程序源代碼:module wyw(clk, addr , wr, ce, oe, data, dout,areset,data_reg, realaddr);inout7:0 data;input areset;inp

7、ut clk;outputwr,oe,ce;output14:0 addr;output dout;output 7:0 data_reg;reg14:0addr;output14:0 realaddr;reg14:0realaddr;wire7:0 data;wirece=0;wire oe=0;reg wr;reg dout;parameter Idle=3'h0, Write_begin=3'h1, Write_end =3'h2, Read_begin =3'h3, Read_end =3'h4;reg qiuyu;reg quan;reg2:0

8、 STATE;reg7:0 data_reg;/程序輸入輸出端口及狀態(tài)定義assign data=wr?data_reg:8'hzz;/定義雙向數(shù)據(jù)端口data的值always (posedge areset or posedge clk )/時(shí)鐘上升沿激勵(lì)及異步復(fù)位beginif (areset) /異步復(fù)位設(shè)置begin wr<=1'b0;data_reg<=8'h00;addr<=15'b0;dout<=1'b0;STATE<=Idle;end elsebegin case(STATE)/非復(fù)位情況下程序運(yùn)行,狀態(tài)判斷

9、Idle: /第一狀態(tài)Idle的定義begin wr<=1; addr<=15'b0; realaddr<=15'b0; data_reg<=8'h00; STATE=Write_begin; dout<=1'b0; qiuyu<=1'b0; quan<=quan;/校驗(yàn)步數(shù)設(shè)定,1,2循環(huán) end Write_begin:/第二狀態(tài)Write_begin的定義 begin addr=addr+15'h1; /地址自加一realaddr=addr-15'h1; /由于波形顯示時(shí)直接顯示地址自加一結(jié)

10、果,因此加入一個(gè)真實(shí)地址的顯示 wr<=wr;/We輸出負(fù)脈沖的設(shè)定if (quan)/校驗(yàn)步數(shù)判斷,并輸入不同數(shù)據(jù)beginqiuyu<=addr%2;/奇偶地址判斷,并存入不同數(shù)據(jù)if(qiuyu)begindata_reg<=8'h55;endelse begindata_reg<=8'h0AA; end STATE=Write_end;endelsebeginqiuyu<=addr%2;if(qiuyu)begindata_reg<=8'h0AA;endelse begindata_reg<=8'h55; end

11、 STATE=Write_end; end endWrite_end: /第三狀態(tài)Write_end定義 begin wr<=wr; /We輸出負(fù)脈沖的設(shè)定 if(addr=15'h02f)/內(nèi)存地址滿后轉(zhuǎn)入讀校驗(yàn) begin STATE=Read_begin; addr<=15'h0;qiuyu<=1'b0;end elseSTATE=Write_begin; /內(nèi)存地址未滿時(shí)繼續(xù)寫數(shù)據(jù)end Read_begin: /第三狀態(tài)Read_begin定義begin/與寫入時(shí)同理,校驗(yàn)器內(nèi)部data_reg寄存器產(chǎn)生正確的地址數(shù)據(jù) addr=addr+1

12、5'h1; realaddr=addr-15'h1; wr=0;if (quan)beginqiuyu<=addr%2; if(qiuyu) begin data_reg<=8'h55; STATE=Read_end; end else begin data_reg<=8'h0AA; STATE=Read_end; endendelsebeginqiuyu<=addr%2; if(qiuyu)begindata_reg<=8'h0AA;STATE=Read_end;end else begin data_reg<=8&

13、#39;h55; STATE=Read_end; endend end Read_end : /第五狀態(tài)Read_end定義beginif(addr=15'h02f)/校驗(yàn)完畢后轉(zhuǎn)入第一狀態(tài)執(zhí)行下一步讀寫校驗(yàn) beginSTATE=Idle; addr<=15'h0;end elsebeginif(data=data_reg) /從內(nèi)存中讀入數(shù)據(jù),與寄存器內(nèi)此地址的正確數(shù)據(jù)進(jìn)行比較begindout<=1'b1;/比較相同,結(jié)果輸出1 STATE=Read_begin; end elsebegindout<=1'b0;/比較不同,結(jié)果輸出0 S

14、TATE=Read_begin;endend end default: STATE=Idle; endcaseendendendmodule三、程序仿真及驗(yàn)證。1功能波形仿真2時(shí)序波形仿真4.RTL級電路模擬四、實(shí)驗(yàn)心得及總結(jié):本實(shí)驗(yàn)邏輯復(fù)雜,程序編寫難度大,要求實(shí)現(xiàn)功能多。本實(shí)驗(yàn)編寫時(shí)曾參考網(wǎng)上的類似程序流程,但程序整體經(jīng)過大幅修改及優(yōu)化。在程序編寫過程中,曾出現(xiàn)如下問題:1. 邏輯關(guān)系及變量過于復(fù)雜使得程序編寫陷入困境。2. 關(guān)于阻塞賦值與非阻塞賦值的方式選擇失誤,曾長時(shí)間引起程序仿真時(shí)結(jié)果錯(cuò)誤。3. 網(wǎng)上下載的程序有先天不足級錯(cuò)誤。以上問題的解決方法:1. 從最外層邏輯關(guān)系入手,一步一步細(xì)化邏輯關(guān)系以及程序運(yùn)行流程,通過形象的流程圖及狀態(tài)轉(zhuǎn)移圖來使程序結(jié)構(gòu)清晰簡化,大大加快編程進(jìn)度。2. 認(rèn)真閱讀了書本上關(guān)于阻塞賦值與非阻塞賦值的相關(guān)內(nèi)容,并結(jié)合仿真時(shí)的直觀錯(cuò)誤,對每一個(gè)變量進(jìn)行篩選,最后通過修改地址賦值語句為阻塞賦值,成功解決錯(cuò)誤。3. 借鑒

溫馨提示

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

評論

0/150

提交評論