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

正文內(nèi)容

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

2025-06-25 19:25本頁(yè)面

【導(dǎo)讀】SPI是一種高速的、全雙工、同步的通信總線,并且在芯片的管腳上只占用。四根線,節(jié)約了芯片的管腳,同時(shí)為PCB的布局上節(jié)省空間。于代碼存儲(chǔ)或者其他非易失性存儲(chǔ)應(yīng)用。Driver和Flash器件之間建立起一座連接的橋梁。控制器接收上層配置的并行。對(duì)Flash的相應(yīng)的讀寫(xiě)等操作。本設(shè)計(jì)采用VerilogHDL語(yǔ)言,在Vi編輯器。中完成設(shè)計(jì),并用EDAtool對(duì)設(shè)計(jì)進(jìn)行了編譯、模擬、仿真和調(diào)試。FPGA上對(duì)結(jié)果進(jìn)行了實(shí)踐證明。完成上述全部工作之后,再?gòu)墓δ?、面積優(yōu)?;统杀究s減等方面對(duì)設(shè)計(jì)進(jìn)行分析總結(jié)本次畢業(yè)設(shè)計(jì)中獲得的寶貴經(jīng)驗(yàn)。師的指導(dǎo)下進(jìn)行的研究工作及取得的成果。盡我所知,除文中特別?;?qū)W歷而使用過(guò)的材料。對(duì)本研究提供過(guò)幫助和做出過(guò)貢獻(xiàn)的個(gè)人?;蚣w,均已在文中作了明確的說(shuō)明并表示了謝意。文的部分或全部?jī)?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 為低時(shí),在 SPI_CLK 時(shí)鐘的上升沿來(lái)之前,把指令值 (或者為地址或數(shù)據(jù) )的每一 bit 從輸出寄存器中取出,再?gòu)母叩降祝▽?duì)該指令來(lái)說(shuō)傳送的 bit 順序依次為: 8’b0000_0010)依次送給穿行的輸出端口SPI_DO,這樣在 SPI flash 在 SPI_CLK 時(shí)鐘的上升沿將其取值。 因?yàn)閷?shí)際中向 Flash 寫(xiě)入數(shù)據(jù)是有翻頁(yè)的情況,要想實(shí)現(xiàn)自動(dòng)翻頁(yè)的功能,就需要將翻頁(yè)前未傳完的數(shù)據(jù)暫 時(shí)的儲(chǔ)存起來(lái),所以設(shè)計(jì)中采用了 2 個(gè)不同位寬的移位寄存器。一個(gè) 32 位寬的用來(lái)專門(mén)負(fù)責(zé)數(shù)據(jù)的串并 /并串轉(zhuǎn)換,另一個(gè)為 24 位寬,負(fù)責(zé)地址 、 指令 和檢查 Flash 忙狀態(tài) 的串并 /并串轉(zhuǎn)換。 在正常的數(shù)據(jù)傳輸是,由狀態(tài)機(jī)控制,在不同的狀態(tài)下分別利用 2 個(gè)移位寄存器進(jìn)行傳輸,當(dāng)寫(xiě)到頁(yè)尾的時(shí)候,如果數(shù)據(jù)傳輸未完成,則需要自動(dòng)翻頁(yè),這就需要重新寫(xiě)入指令和地址,此時(shí)有狀態(tài)機(jī)控制狀態(tài)轉(zhuǎn)移,使數(shù)據(jù)移位寄存器暫時(shí)暫停工作,由另外的移位寄存器依次進(jìn)行檢查 BUSY、寫(xiě)如指令、寫(xiě)入地址的操作,等到可以再次寫(xiě)入數(shù)據(jù)的時(shí)候,數(shù)據(jù)移位寄存器才恢復(fù)工作 ,從而實(shí)現(xiàn)自動(dòng)翻頁(yè)的功能。 SPI IP 接口設(shè)計(jì) 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ù) 儲(chǔ) 存 器I D 寄 存 器圖 數(shù)據(jù)狀態(tài)信息選擇邏輯示意圖 根據(jù)當(dāng)前 SPI Flash Controller 所發(fā)送的指令可以判斷從 Flash 器件接收回來(lái)的是數(shù)據(jù)信息還是狀態(tài)信息,然后通過(guò)數(shù)據(jù) 狀態(tài)信息選擇邏輯決定信息的不同分流方向如果是數(shù)據(jù),則放入數(shù)據(jù)緩存 器( SPI_FIFO) ,如果是狀態(tài)信息,則放入 Flash狀態(tài)寄存器( STATUS_ID),如圖 所示。 用于數(shù)據(jù)存儲(chǔ)的 FIFO 在這里作單獨(dú)介紹: F I F O..W PR P 圖 數(shù)據(jù)緩存器示意圖 本設(shè)計(jì)采用深度 8 寬度 32 的 FIFO 作為數(shù)據(jù)緩沖存儲(chǔ)器。如果是寫(xiě) Flash 命令 ,它接受上層配置的數(shù)據(jù) , 然后通過(guò) SPI總線發(fā)送至 Flash。如果是讀 Flash命令, FIFO接受從 Flash 中讀出的數(shù)據(jù),然后通過(guò) HE Register Bus 發(fā)往上層。 此 FIFO 采用讀寫(xiě)雙指針模式,讀指針和寫(xiě)指針均為 4bit。 指針最高位作為標(biāo)志位來(lái)區(qū)分 FIFO 的空滿狀態(tài)。 當(dāng)讀指針、寫(xiě)指針 完全 相等的時(shí)候, FIFO 為空。當(dāng)讀指針和寫(xiě)指針的低 3 位相等,而最高位相反 時(shí), FIFO 為滿。 分頻模塊 根據(jù)設(shè)計(jì)要求, SPI Flash Controller 要支持三種可配置的 SPI 模式傳輸速度,第四章 SPI Flash Controller 設(shè)計(jì)與實(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 信號(hào),首先會(huì)將指令放入移位寄存器當(dāng)中,當(dāng)移位寄存器中需傳輸?shù)闹噶顪?zhǔn)備好之后,會(huì)將 Flash 片選信號(hào) SPI_CS_B 拉低(有效),待整個(gè)指令傳輸完成之后,再將片選信號(hào) SPI_CS_B信號(hào)拉高。 中斷信號(hào)產(chǎn)生模塊 SPI Flash Controller 支持三種中斷機(jī)制。即 ,數(shù)據(jù)緩存 FIFO 空中斷、數(shù)據(jù)緩存 FIFO 滿中斷和傳輸完成中斷。當(dāng)上述三種中斷發(fā)生時(shí),會(huì)首先將 Register File中的中斷狀態(tài)寄存器( INT_FLAG)的相應(yīng)中斷狀態(tài)位置 1(有效)。 中 斷 生 成 模 塊中 斷 狀 態(tài) 寄存 器中 斷 使 能 信號(hào)S P I _ I N T 圖 中斷信號(hào)產(chǎn)生器 當(dāng)傳輸完成中斷發(fā)生時(shí),如果傳輸完成中斷屏蔽使能信號(hào) SPI_CON[8]為 0 ( enable) ,中斷信號(hào) SPI_INT 有效,否則無(wú)效。 SPI IP 接口設(shè)計(jì) 26 第五章 SPI Flash Controller 測(cè)試與驗(yàn)證 27 第五章 SPI Flash Controller 測(cè)試與驗(yàn)證 測(cè)試環(huán)境 整個(gè) SPI Flash Controller 的測(cè)試環(huán)境分為 7 個(gè)部分: 測(cè)試情況,偽 CPU,設(shè)計(jì)方案, SPI 閃存,存儲(chǔ)器(期望值),存儲(chǔ)器(測(cè)試輸出數(shù)據(jù))和監(jiān)視器。 測(cè)試環(huán)境框圖: 測(cè) 試 情 況存 儲(chǔ) 器( 測(cè) 試 輸 出 數(shù) 據(jù) )設(shè) 計(jì) 方 案監(jiān) 視 器 結(jié) 果S P I 閃 存 行為 模 擬 程 序存 儲(chǔ) 器 ( 期望 值 )偽 C P U 圖 測(cè)試環(huán)境框圖 ? 在 測(cè)試情況 中,共有 19 個(gè) pattern 為測(cè)試不同功能點(diǎn)提供全面測(cè)試的原始激勵(lì)。 ? 在 偽 CPU 中,定義了 寄存器 的讀寫(xiě) 任務(wù),便于測(cè)試更有效的進(jìn)行。 ? 設(shè)計(jì)方案 為 SPI Flash Controller 設(shè)計(jì)本身。 ? SPI 閃存 為 模擬 Flash 全部行為的 一個(gè) 模型程序 。 ? 存 儲(chǔ)器(期望值) 用來(lái)存儲(chǔ)與讀出數(shù)據(jù)比對(duì)的原始數(shù)據(jù)。 ? 存儲(chǔ)器(測(cè)試輸出數(shù)據(jù) )用來(lái)存儲(chǔ)從 Flash 中讀出的數(shù)據(jù)。 ? 監(jiān)視器 用于實(shí)現(xiàn)原始數(shù)據(jù)與測(cè)試輸出數(shù)據(jù)的 自動(dòng) 比對(duì) 功能 ,以判斷設(shè)計(jì)的正確性。 SPI IP 接口設(shè)計(jì) 28 測(cè)試文件架構(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文 件文 件 夾注 釋管 理 文 件測(cè) 試 功 能 點(diǎn)仿 真 記 錄 文 件行 為 模 擬 程 序功 能 測(cè) 試 覆 蓋 率 分 析 文 件被 編 譯 文 件 列 表仿 真 波 形期 望 值測(cè) 試 中 設(shè) 計(jì) 的 輸 出頂 層 仿 真 模 塊空?qǐng)D 測(cè)試文件架構(gòu)圖 一個(gè)好的文件架構(gòu)能夠方便我們的文件管理,在整個(gè)測(cè)試中由于要用到的以及產(chǎn)生的文件較多,我們必須有一個(gè)規(guī)范的文件存放位置和管理架構(gòu),這樣更有利于我們的測(cè)試和改正錯(cuò)誤,具體架構(gòu)如圖 所示。 測(cè)試 功能 點(diǎn) 表 仿真 測(cè)試功能點(diǎn) 功能 子功能 控制信號(hào) 功能描述 復(fù)位 硬件復(fù)位 RST_B 開(kāi)始硬件復(fù)位 進(jìn)程中硬件復(fù)位 軟件復(fù)位 SW_RST 開(kāi)始軟件復(fù)位 進(jìn)程中軟件復(fù)位 寄存器讀寫(xiě) 寄存器的正常讀寫(xiě) R_RGST_WE, R_RGST_RE, R_RGST_SPI_SEL, R_RGST_BUS 對(duì)每個(gè)寄存器進(jìn)行寫(xiě)操作,然后讀取每個(gè)寄存器的值 第五章 SPI Flash Controller 測(cè)試與驗(yàn)證 29 續(xù)表 功能 子功能 控制信號(hào) 功能描述 寫(xiě)操作 寫(xiě)保護(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 必須在每一個(gè)寫(xiě)操作前寫(xiě)入 Flash Write disable 將狀態(tài)寄存器 WEL 位置 0 寫(xiě)狀態(tài)寄存器 ADR_EN,DATA_RW, BYTE_CNT,WE_EN, STA_ID_FAST 寫(xiě)狀態(tài)寄存器 數(shù)據(jù)寫(xiě)入 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)確,寫(xiě)入地址后需要等待 8 個(gè)周期才能采集數(shù)據(jù) 讀廠商信息 將 Falsh 廠商信息讀入 SPI STATUS_ID 寄存器 擦除 片擦除 ADR_EN,DATA_RW, BYTE_CNT,WE_EN, STA_ID_FAST 將整個(gè)存儲(chǔ)空間寫(xiě)為全 1 Sector 擦除 將寫(xiě)入地址的對(duì)應(yīng) Sector 寫(xiě)為全 1 Block 擦除 將寫(xiě)入地址的對(duì)應(yīng) Block 寫(xiě)為全 1 中 斷 傳輸完成中斷 BYTE_CNT,WE_EN SPI 操作執(zhí)行完之后,發(fā)出有效的中斷信號(hào) DMA 模式 DMA 模式 寫(xiě)入數(shù)據(jù) SPI_TX_REQ, SPI_TX_CLR FIFO 為空,將數(shù)據(jù)寫(xiě)入FIFO,寫(xiě)滿后將 TX_REQ 清除 讀出數(shù)據(jù) SPI_RX_REQ, SPI_RX_CLR FIFO 為滿,從 FIFO 中將數(shù)據(jù)讀出,讀空后將 RX_REQ清除 SPI IP 接口設(shè)計(jì) 30 續(xù)表 功能 子功能 控制信號(hào) 功能描述 FIFO 讀寫(xiě) STA_ID_FAST 正常的讀寫(xiě) 空狀態(tài)時(shí)的TX_REQ CPU_DMA 檢查能否在 FIFO 為空時(shí)正常準(zhǔn)確的發(fā)出TX_REQ 信號(hào) 滿狀態(tài)使得RX_REQ CPU_DMA 檢查能否在 FIFO 為滿時(shí)正常準(zhǔn)確的發(fā)出RX_REQ 信號(hào) 非正常操作 讀操作 ADR_EN,DATA_RW, BYTE_CNT,WE_EN, STA_ID_FAST 讀操作,配置信息及指令隨機(jī)錯(cuò)誤 寫(xiě)操作 寫(xiě)操作,配置正確,指令錯(cuò)誤 測(cè)試流程 整個(gè) SPI Flash Controller 支持對(duì) Flash 的一些基本的讀寫(xiě)操作,如果需要驗(yàn)證讀寫(xiě)操作的正確性,必須讀寫(xiě)操作一起執(zhí)行,才能得到測(cè)試輸出數(shù)據(jù),以便和 原始數(shù)據(jù)做比對(duì)。 在測(cè)試寫(xiě)操作的正確性前,必須證明讀操作的正確性。首先, 修改測(cè)試用的SPI 后端 Flash 的行為模擬程序的 Memory 默認(rèn)值為不同的值(這里我設(shè)定成與其地址相同),然后 初始化整個(gè) SPI Flash,這時(shí) SPI Flash 中的初始數(shù)據(jù)可知,通過(guò)Register Bus 給 SPI Flash 控制器配置讀操作所需指令、地址,然后發(fā)送讀指令,讀出數(shù)據(jù) 與 SPI Flash 中的初始 化數(shù)值做對(duì)比 , 如果相同 則證明讀操作正確。 讀操作測(cè)試正確后就可以開(kāi)始寫(xiě)操作的正確性。 在讀操作正確的前提下,再來(lái)證明寫(xiě)操作的正 確性。 同樣通過(guò) Register Bus 給SPI Flash 控制器配置寫(xiě)操作指令、地址和激勵(lì)數(shù)據(jù),然后發(fā)送寫(xiě)指令,寫(xiě)入 Flash中地址所指的相應(yīng)區(qū)域,再通過(guò) Register Bus 配置讀指令、和同樣的地址,然后讀出地址所指的相應(yīng)區(qū)域,讀出數(shù)據(jù)如果與先前寫(xiě)入數(shù)據(jù)相同,則證明寫(xiě)操作正確。 擦除操作在讀寫(xiě)操作正確的前提下,再進(jìn)行測(cè)試,先通過(guò)寫(xiě)操作給 Flash 中的特定區(qū)域?qū)懭胍恍?shù)據(jù),然后通過(guò) Register Bus 配置擦除指令,控制器再發(fā)送擦除第五章 SPI Flash Controller 測(cè)試與驗(yàn)證 31 指令,對(duì) Flash 中的特定區(qū)域進(jìn)行擦除(寫(xiě) “ 1” ),然后再通過(guò)讀指 令讀出相應(yīng)區(qū)域,以讀出數(shù)據(jù)是否為全 “ 1” ,判斷擦除指令是否正確。 下面以 擦除指令 為例說(shuō)明具體的測(cè)試流程: 通 過(guò)所 有 數(shù) 據(jù) 為 1 ?Y e sN oN o傳 輸 完 成 ?Y e s開(kāi) 始結(jié) 束向 F l a s h 某 地 址 寫(xiě) 入 部 分 數(shù) 據(jù)失 敗向 F l a s h 寫(xiě) 擦 除 指 令 , 擦 除 掉剛 剛 寫(xiě) 入 的 數(shù) 據(jù)Y e s讀 取 擦 除 位 置 的 數(shù) 據(jù)B U S Y 位 為 0 ?N o 圖 擦除指令測(cè)試流程 FPGA 驗(yàn)證 C_CODE 的仿真 當(dāng)設(shè)計(jì)的功能仿真測(cè)試全部通過(guò)以后,就可以開(kāi)始驅(qū)動(dòng)的編寫(xiě)和仿真測(cè)試。首先把設(shè)計(jì)代碼接到平臺(tái)的代碼之中,然后把編寫(xiě)的 C 驅(qū)動(dòng)通過(guò) IDE 軟件編譯成仿真需要的 hex 文件,然后像之前 的仿真 測(cè)試一樣對(duì)設(shè)計(jì)進(jìn)行全面測(cè)試。 此次仿真的主要目的在于測(cè)試設(shè)計(jì)與平臺(tái)的連接是否正確, 并且檢驗(yàn)驅(qū)動(dòng)程序書(shū)寫(xiě)是否正確、合理、全面。 FPGA 硬件測(cè)試 所有 仿真結(jié)束 并通過(guò)以 后,利用 IDE 把設(shè)計(jì)編譯成 srec 文件,然后利用 ISE生成 FPGA 平臺(tái)下載所需的 MCS 文件。生成的 MCS 文件即可以通過(guò)計(jì)算機(jī)并口SPI IP 接口設(shè)計(jì) 32 下載到 FPGA 平臺(tái)中。
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1