基于FPGA的可復用通信接口設計
3、設計原理
Verilog HDL 是一種硬件描述語(yǔ)言,他可以用來(lái)進(jìn)行各種級別的邏輯設計,可以用來(lái)進(jìn)行數字邏輯系統 的仿真驗證、時(shí)序分析和邏輯綜合等,應用十分廣泛。本文使用Verilog設計 SPI接口模塊,實(shí)現可IP復用 的通用結構。根據SPI總線(xiàn)原理,可用幾個(gè)功能模塊來(lái)實(shí)現微處理器與從設備之間的雙向數據傳輸。
3.1. 系統架構設計
根據SPI 總線(xiàn)的原理,本設計的SPI Master同SPI協(xié)議兼容,在主機側的設計相當于wishbone總線(xiàn)[2]規 范兼容的slave設備,總體架構可分為以下3個(gè)功能模塊[3]:Clock generator、Serial interface、Wishbone interface
3.2. 模塊設計
3.2.1 .時(shí)鐘產(chǎn)生模塊spi-clgen設計
SPI時(shí)鐘分頻模塊中的時(shí)鐘信號的來(lái)源是外部系統提供的時(shí)鐘clk_in,模塊會(huì )根據各個(gè)不同接口的時(shí)鐘 分頻因子寄存器,產(chǎn)生相應的時(shí)鐘輸出信號clk_out。由于SPI沒(méi)有應答機制,為了能夠保證時(shí)序的可靠性, 特別設計了一個(gè)無(wú)論對于奇分頻還是偶分頻都異??煽康臅r(shí)鐘生成模塊產(chǎn)生傳輸所需要的串行時(shí)鐘。
此模塊重點(diǎn)考慮了奇分頻的情況,為了節省資源對奇分頻的做改動(dòng)同時(shí)也能實(shí)現偶分頻的情況。對輸入主 時(shí)鐘的同步奇整數分頻,可以簡(jiǎn)單地用一個(gè)Moore機來(lái)實(shí)現,編碼采用Moore機增加了可靠性。
master核系統輸入時(shí)鐘clk-in通過(guò)divider分頻產(chǎn)生clk-out,通過(guò)改變divider的值,可以實(shí)現任意分頻的時(shí)鐘 輸出[4]。其頻率表達式如下:
用verilog語(yǔ)言描述時(shí)鐘產(chǎn)生模塊,用ISE綜合后,其生成電路如圖2所示。
圖2.時(shí)鐘產(chǎn)生模塊電路
3.2.2. 串行接口模塊spi-shift設計
數據傳輸模塊是SPI的核心模塊。此模塊負責把并行進(jìn)來(lái)的數據串行傳出,串行進(jìn)來(lái)的數據并行傳出。 本文設計的shift與通常的SPI移位模塊設計不同,原因在于這里考慮了寄存器的復用,以使用較少硬件資源 來(lái)增大一次傳輸數據的位數,從而提高數據傳輸的整體速率。對于并行進(jìn)來(lái)的數據位寬比較長(cháng),比如128 位的數據時(shí),為了提高傳輸的速度,本文設計工作中犧牲了資源改進(jìn)了以前的保守的SPI模塊。SPI MaSTer 核在主機側作為slave設備接收數據,同時(shí)作為master設備發(fā)送數據。此模塊verilog代碼經(jīng)ISE綜合后如圖3 所示。
圖3.串行接口模塊電路
評論