freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

spi_ip串行外圍設(shè)備接口畢業(yè)論文-資料下載頁

2025-06-25 19:25本頁面

【導(dǎo)讀】SPI是一種高速的、全雙工、同步的通信總線,并且在芯片的管腳上只占用。四根線,節(jié)約了芯片的管腳,同時為PCB的布局上節(jié)省空間。于代碼存儲或者其他非易失性存儲應(yīng)用。Driver和Flash器件之間建立起一座連接的橋梁??刂破鹘邮丈蠈优渲玫牟⑿?。對Flash的相應(yīng)的讀寫等操作。本設(shè)計采用VerilogHDL語言,在Vi編輯器。中完成設(shè)計,并用EDAtool對設(shè)計進(jìn)行了編譯、模擬、仿真和調(diào)試。FPGA上對結(jié)果進(jìn)行了實踐證明。完成上述全部工作之后,再從功能、面積優(yōu)?;统杀究s減等方面對設(shè)計進(jìn)行分析總結(jié)本次畢業(yè)設(shè)計中獲得的寶貴經(jīng)驗。師的指導(dǎo)下進(jìn)行的研究工作及取得的成果。盡我所知,除文中特別?;?qū)W歷而使用過的材料。對本研究提供過幫助和做出過貢獻(xiàn)的個人?;蚣w,均已在文中作了明確的說明并表示了謝意。文的部分或全部內(nèi)容。

  

【正文】 *I n s t r u c t i o n ( 0 2 h )01 23 4567892 9 3 03 12 4 B i t A d d r e s sM o d e 3M o d e 0S P I _ C L KS P I _ D O3 23 3 3 43 5 3 63 73 83 97 6 5 4 3 2 1 0D a t a B y t e 1*4 04 1 4 24 3 4 44 54 64 77 6 5 4 3 2 1 0D a t a B y t e 3*4 84 9 5 05 1 5 25 35 45 57 6 5 4 3 2 1 0D a t a B y t e 4*20727 6 5 4 3 2 1 0D a t a B y t e 2 5 6*X X XM o d e 3M o d e 02073207520742077207620782079S P I _ C S _ BS P I _ C L KS P I _ D OS P I _ C S _ B圖 SPI 傳輸 page program 指令 如圖 所 示, Page prograrm 指令的 code 值為 02H,在用 SPI 模式傳輸 Page program 指令需要做的是:在 SPI_CS_B 為低時,在 SPI_CLK 時鐘的上升沿來之前,把指令值 (或者為地址或數(shù)據(jù) )的每一 bit 從輸出寄存器中取出,再從高到底(對該指令來說傳送的 bit 順序依次為: 8’b0000_0010)依次送給穿行的輸出端口SPI_DO,這樣在 SPI flash 在 SPI_CLK 時鐘的上升沿將其取值。 因為實際中向 Flash 寫入數(shù)據(jù)是有翻頁的情況,要想實現(xiàn)自動翻頁的功能,就需要將翻頁前未傳完的數(shù)據(jù)暫 時的儲存起來,所以設(shè)計中采用了 2 個不同位寬的移位寄存器。一個 32 位寬的用來專門負(fù)責(zé)數(shù)據(jù)的串并 /并串轉(zhuǎn)換,另一個為 24 位寬,負(fù)責(zé)地址 、 指令 和檢查 Flash 忙狀態(tài) 的串并 /并串轉(zhuǎn)換。 在正常的數(shù)據(jù)傳輸是,由狀態(tài)機(jī)控制,在不同的狀態(tài)下分別利用 2 個移位寄存器進(jìn)行傳輸,當(dāng)寫到頁尾的時候,如果數(shù)據(jù)傳輸未完成,則需要自動翻頁,這就需要重新寫入指令和地址,此時有狀態(tài)機(jī)控制狀態(tài)轉(zhuǎn)移,使數(shù)據(jù)移位寄存器暫時暫停工作,由另外的移位寄存器依次進(jìn)行檢查 BUSY、寫如指令、寫入地址的操作,等到可以再次寫入數(shù)據(jù)的時候,數(shù)據(jù)移位寄存器才恢復(fù)工作 ,從而實現(xiàn)自動翻頁的功能。 SPI IP 接口設(shè)計 24 數(shù)據(jù)狀態(tài)信息選擇邏輯 R e a d / F a s t R ea dR e a d S t a t u s R e g i s t e r數(shù) 據(jù)狀 態(tài) 信 息選 擇 邏 輯并 串 轉(zhuǎn) 換 移 位 寄 存 器數(shù) 據(jù) 儲 存 器I D 寄 存 器圖 數(shù)據(jù)狀態(tài)信息選擇邏輯示意圖 根據(jù)當(dāng)前 SPI Flash Controller 所發(fā)送的指令可以判斷從 Flash 器件接收回來的是數(shù)據(jù)信息還是狀態(tài)信息,然后通過數(shù)據(jù) 狀態(tài)信息選擇邏輯決定信息的不同分流方向如果是數(shù)據(jù),則放入數(shù)據(jù)緩存 器( SPI_FIFO) ,如果是狀態(tài)信息,則放入 Flash狀態(tài)寄存器( STATUS_ID),如圖 所示。 用于數(shù)據(jù)存儲的 FIFO 在這里作單獨介紹: F I F O..W PR P 圖 數(shù)據(jù)緩存器示意圖 本設(shè)計采用深度 8 寬度 32 的 FIFO 作為數(shù)據(jù)緩沖存儲器。如果是寫 Flash 命令 ,它接受上層配置的數(shù)據(jù) , 然后通過 SPI總線發(fā)送至 Flash。如果是讀 Flash命令, FIFO接受從 Flash 中讀出的數(shù)據(jù),然后通過 HE Register Bus 發(fā)往上層。 此 FIFO 采用讀寫雙指針模式,讀指針和寫指針均為 4bit。 指針最高位作為標(biāo)志位來區(qū)分 FIFO 的空滿狀態(tài)。 當(dāng)讀指針、寫指針 完全 相等的時候, FIFO 為空。當(dāng)讀指針和寫指針的低 3 位相等,而最高位相反 時, FIFO 為滿。 分頻模塊 根據(jù)設(shè)計要求, SPI Flash Controller 要支持三種可配置的 SPI 模式傳輸速度,第四章 SPI Flash Controller 設(shè)計與實現(xiàn) 25 分別為 1/4 system clock,1/8 system clock,1/16 system Register File 中控制寄存器的第 4 位可以決定不同的 SPI 傳輸速度: SPI_CON[3:2]=2’h00 1/4 system clock SPI_CON[3:2]=2’h01 1/8 system clock SPI_CON[3。2]=2’h10 1/16 system clock SPI_CON[3:2]=2’h11 1/16 system clock 片選邏輯模塊 上層配置指令、地址、數(shù)據(jù)之后,控制器接收到 Start 信號,首先會將指令放入移位寄存器當(dāng)中,當(dāng)移位寄存器中需傳輸?shù)闹噶顪?zhǔn)備好之后,會將 Flash 片選信號 SPI_CS_B 拉低(有效),待整個指令傳輸完成之后,再將片選信號 SPI_CS_B信號拉高。 中斷信號產(chǎn)生模塊 SPI Flash Controller 支持三種中斷機(jī)制。即 ,數(shù)據(jù)緩存 FIFO 空中斷、數(shù)據(jù)緩存 FIFO 滿中斷和傳輸完成中斷。當(dāng)上述三種中斷發(fā)生時,會首先將 Register File中的中斷狀態(tài)寄存器( INT_FLAG)的相應(yīng)中斷狀態(tài)位置 1(有效)。 中 斷 生 成 模 塊中 斷 狀 態(tài) 寄存 器中 斷 使 能 信號S P I _ I N T 圖 中斷信號產(chǎn)生器 當(dāng)傳輸完成中斷發(fā)生時,如果傳輸完成中斷屏蔽使能信號 SPI_CON[8]為 0 ( enable) ,中斷信號 SPI_INT 有效,否則無效。 SPI IP 接口設(shè)計 26 第五章 SPI Flash Controller 測試與驗證 27 第五章 SPI Flash Controller 測試與驗證 測試環(huán)境 整個 SPI Flash Controller 的測試環(huán)境分為 7 個部分: 測試情況,偽 CPU,設(shè)計方案, SPI 閃存,存儲器(期望值),存儲器(測試輸出數(shù)據(jù))和監(jiān)視器。 測試環(huán)境框圖: 測 試 情 況存 儲 器( 測 試 輸 出 數(shù) 據(jù) )設(shè) 計 方 案監(jiān) 視 器 結(jié) 果S P I 閃 存 行為 模 擬 程 序存 儲 器 ( 期望 值 )偽 C P U 圖 測試環(huán)境框圖 ? 在 測試情況 中,共有 19 個 pattern 為測試不同功能點提供全面測試的原始激勵。 ? 在 偽 CPU 中,定義了 寄存器 的讀寫 任務(wù),便于測試更有效的進(jìn)行。 ? 設(shè)計方案 為 SPI Flash Controller 設(shè)計本身。 ? SPI 閃存 為 模擬 Flash 全部行為的 一個 模型程序 。 ? 存 儲器(期望值) 用來存儲與讀出數(shù)據(jù)比對的原始數(shù)據(jù)。 ? 存儲器(測試輸出數(shù)據(jù) )用來存儲從 Flash 中讀出的數(shù)據(jù)。 ? 監(jiān)視器 用于實現(xiàn)原始數(shù)據(jù)與測試輸出數(shù)據(jù)的 自動 比對 功能 ,以判斷設(shè)計的正確性。 SPI IP 接口設(shè)計 28 測試文件架構(gòu) S P I F l a s h C o n t r o l l e rs r cm a c r os i mo u t p u tw a v e f o r mm o d e ll o gg o l d e nt s kp a t t e r ns i m . vs i m f i l e s . fm a k e f i l ec o v _ w o r k文 件文 件 夾注 釋管 理 文 件測 試 功 能 點仿 真 記 錄 文 件行 為 模 擬 程 序功 能 測 試 覆 蓋 率 分 析 文 件被 編 譯 文 件 列 表仿 真 波 形期 望 值測 試 中 設(shè) 計 的 輸 出頂 層 仿 真 模 塊空圖 測試文件架構(gòu)圖 一個好的文件架構(gòu)能夠方便我們的文件管理,在整個測試中由于要用到的以及產(chǎn)生的文件較多,我們必須有一個規(guī)范的文件存放位置和管理架構(gòu),這樣更有利于我們的測試和改正錯誤,具體架構(gòu)如圖 所示。 測試 功能 點 表 仿真 測試功能點 功能 子功能 控制信號 功能描述 復(fù)位 硬件復(fù)位 RST_B 開始硬件復(fù)位 進(jìn)程中硬件復(fù)位 軟件復(fù)位 SW_RST 開始軟件復(fù)位 進(jìn)程中軟件復(fù)位 寄存器讀寫 寄存器的正常讀寫 R_RGST_WE, R_RGST_RE, R_RGST_SPI_SEL, R_RGST_BUS 對每個寄存器進(jìn)行寫操作,然后讀取每個寄存器的值 第五章 SPI Flash Controller 測試與驗證 29 續(xù)表 功能 子功能 控制信號 功能描述 寫操作 寫保護(hù) SPI_WP_B 保護(hù) Flash 狀態(tài)寄存器內(nèi)容不被改變 Write enable ADR_EN,DATA_RW, BYTE_CNT,WE_EN, STA_ID_FAST Write enable 必須在每一個寫操作前寫入 Flash Write disable 將狀態(tài)寄存器 WEL 位置 0 寫狀態(tài)寄存器 ADR_EN,DATA_RW, BYTE_CNT,WE_EN, STA_ID_FAST 寫狀態(tài)寄存器 數(shù)據(jù)寫入 Write data into Flash memory 讀操作 讀狀態(tài)寄存器 ADR_EN,DATA_RW, BYTE_CNT,WE_EN, STA_ID_FAST 將 Flash狀態(tài)寄存器的值讀入SPI 讀數(shù)據(jù) 將 Falsh Memory 中的數(shù)據(jù)讀如 SPI_FIFO 快速讀數(shù)據(jù) 為了數(shù)據(jù)準(zhǔn)確,寫入地址后需要等待 8 個周期才能采集數(shù)據(jù) 讀廠商信息 將 Falsh 廠商信息讀入 SPI STATUS_ID 寄存器 擦除 片擦除 ADR_EN,DATA_RW, BYTE_CNT,WE_EN, STA_ID_FAST 將整個存儲空間寫為全 1 Sector 擦除 將寫入地址的對應(yīng) Sector 寫為全 1 Block 擦除 將寫入地址的對應(yīng) Block 寫為全 1 中 斷 傳輸完成中斷 BYTE_CNT,WE_EN SPI 操作執(zhí)行完之后,發(fā)出有效的中斷信號 DMA 模式 DMA 模式 寫入數(shù)據(jù) SPI_TX_REQ, SPI_TX_CLR FIFO 為空,將數(shù)據(jù)寫入FIFO,寫滿后將 TX_REQ 清除 讀出數(shù)據(jù) SPI_RX_REQ, SPI_RX_CLR FIFO 為滿,從 FIFO 中將數(shù)據(jù)讀出,讀空后將 RX_REQ清除 SPI IP 接口設(shè)計 30 續(xù)表 功能 子功能 控制信號 功能描述 FIFO 讀寫 STA_ID_FAST 正常的讀寫 空狀態(tài)時的TX_REQ CPU_DMA 檢查能否在 FIFO 為空時正常準(zhǔn)確的發(fā)出TX_REQ 信號 滿狀態(tài)使得RX_REQ CPU_DMA 檢查能否在 FIFO 為滿時正常準(zhǔn)確的發(fā)出RX_REQ 信號 非正常操作 讀操作 ADR_EN,DATA_RW, BYTE_CNT,WE_EN, STA_ID_FAST 讀操作,配置信息及指令隨機(jī)錯誤 寫操作 寫操作,配置正確,指令錯誤 測試流程 整個 SPI Flash Controller 支持對 Flash 的一些基本的讀寫操作,如果需要驗證讀寫操作的正確性,必須讀寫操作一起執(zhí)行,才能得到測試輸出數(shù)據(jù),以便和 原始數(shù)據(jù)做比對。 在測試寫操作的正確性前,必須證明讀操作的正確性。首先, 修改測試用的SPI 后端 Flash 的行為模擬程序的 Memory 默認(rèn)值為不同的值(這里我設(shè)定成與其地址相同),然后 初始化整個 SPI Flash,這時 SPI Flash 中的初始數(shù)據(jù)可知,通過Register Bus 給 SPI Flash 控制器配置讀操作所需指令、地址,然后發(fā)送讀指令,讀出數(shù)據(jù) 與 SPI Flash 中的初始 化數(shù)值做對比 , 如果相同 則證明讀操作正確。 讀操作測試正確后就可以開始寫操作的正確性。 在讀操作正確的前提下,再來證明寫操作的正 確性。 同樣通過 Register Bus 給SPI Flash 控制器配置寫操作指令、地址和激勵數(shù)據(jù),然后發(fā)送寫指令,寫入 Flash中地址所指的相應(yīng)區(qū)域,再通過 Register Bus 配置讀指令、和同樣的地址,然后讀出地址所指的相應(yīng)區(qū)域,讀出數(shù)據(jù)如果與先前寫入數(shù)據(jù)相同,則證明寫操作正確。 擦除操作在讀寫操作正確的前提下,再進(jìn)行測試,先通過寫操作給 Flash 中的特定區(qū)域?qū)懭胍恍?shù)據(jù),然后通過 Register Bus 配置擦除指令,控制器再發(fā)送擦除第五章 SPI Flash Controller 測試與驗證 31 指令,對 Flash 中的特定區(qū)域進(jìn)行擦除(寫 “ 1” ),然后再通過讀指 令讀出相應(yīng)區(qū)域,以讀出數(shù)據(jù)是否為全 “ 1” ,判斷擦除指令是否正確。 下面以 擦除指令 為例說明具體的測試流程: 通 過所 有 數(shù) 據(jù) 為 1 ?Y e sN oN o傳 輸 完 成 ?Y e s開 始結(jié) 束向 F l a s h 某 地 址 寫 入 部 分 數(shù) 據(jù)失 敗向 F l a s h 寫 擦 除 指 令 , 擦 除 掉剛 剛 寫 入 的 數(shù) 據(jù)Y e s讀 取 擦 除 位 置 的 數(shù) 據(jù)B U S Y 位 為 0 ?N o 圖 擦除指令測試流程 FPGA 驗證 C_CODE 的仿真 當(dāng)設(shè)計的功能仿真測試全部通過以后,就可以開始驅(qū)動的編寫和仿真測試。首先把設(shè)計代碼接到平臺的代碼之中,然后把編寫的 C 驅(qū)動通過 IDE 軟件編譯成仿真需要的 hex 文件,然后像之前 的仿真 測試一樣對設(shè)計進(jìn)行全面測試。 此次仿真的主要目的在于測試設(shè)計與平臺的連接是否正確, 并且檢驗驅(qū)動程序書寫是否正確、合理、全面。 FPGA 硬件測試 所有 仿真結(jié)束 并通過以 后,利用 IDE 把設(shè)計編譯成 srec 文件,然后利用 ISE生成 FPGA 平臺下載所需的 MCS 文件。生成的 MCS 文件即可以通過計算機(jī)并口SPI IP 接口設(shè)計 32 下載到 FPGA 平臺中。
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1