新聞中心

EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于FPGA的可復(fù)用通信接口設(shè)計(jì)

基于FPGA的可復(fù)用通信接口設(shè)計(jì)

作者: 時間:2012-08-27 來源:網(wǎng)絡(luò) 收藏

3、設(shè)計(jì)原理

Verilog HDL 是一種硬件描述語言,他可以用來進(jìn)行各種級別的邏輯設(shè)計(jì),可以用來進(jìn)行數(shù)字邏輯系統(tǒng) 的仿真驗(yàn)證、時序分析和邏輯綜合等,應(yīng)用十分廣泛。本文使用Verilog設(shè)計(jì) SPI接口模塊,實(shí)現(xiàn)可IP復(fù)用 的通用結(jié)構(gòu)。根據(jù)SPI總線原理,可用幾個功能模塊來實(shí)現(xiàn)微處理器與從設(shè)備之間的雙向數(shù)據(jù)傳輸。

3.1. 系統(tǒng)架構(gòu)設(shè)計(jì)

根據(jù)SPI 總線的原理,本設(shè)計(jì)的SPI Master同SPI協(xié)議兼容,在主機(jī)側(cè)的設(shè)計(jì)相當(dāng)于wishbone總線[2]規(guī) 范兼容的slave設(shè)備,總體架構(gòu)可分為以下3個功能模塊[3]:Clock generator、Serial interface、Wishbone interface

3.2. 模塊設(shè)計(jì)

3.2.1 .時鐘產(chǎn)生模塊spi-clgen設(shè)計(jì)

SPI時鐘分頻模塊中的時鐘信號的來源是外部系統(tǒng)提供的時鐘clk_in,模塊會根據(jù)各個不同接口的時鐘 分頻因子寄存器,產(chǎn)生相應(yīng)的時鐘輸出信號clk_out。由于SPI沒有應(yīng)答機(jī)制,為了能夠保證時序的可靠性, 特別設(shè)計(jì)了一個無論對于奇分頻還是偶分頻都異??煽康臅r鐘生成模塊產(chǎn)生傳輸所需要的串行時鐘。

此模塊重點(diǎn)考慮了奇分頻的情況,為了節(jié)省資源對奇分頻的做改動同時也能實(shí)現(xiàn)偶分頻的情況。對輸入主 時鐘的同步奇整數(shù)分頻,可以簡單地用一個Moore機(jī)來實(shí)現(xiàn),編碼采用Moore機(jī)增加了可靠性。

master核系統(tǒng)輸入時鐘clk-in通過divider分頻產(chǎn)生clk-out,通過改變divider的值,可以實(shí)現(xiàn)任意分頻的時鐘 輸出[4]。其頻率表達(dá)式如下:

用verilog語言描述時鐘產(chǎn)生模塊,用ISE綜合后,其生成電路如圖2所示。


圖2.時鐘產(chǎn)生模塊電路

3.2.2. 串行接口模塊spi-shift設(shè)計(jì)

數(shù)據(jù)傳輸模塊是SPI的核心模塊。此模塊負(fù)責(zé)把并行進(jìn)來的數(shù)據(jù)串行傳出,串行進(jìn)來的數(shù)據(jù)并行傳出。 本文設(shè)計(jì)的shift與通常的SPI移位模塊設(shè)計(jì)不同,原因在于這里考慮了寄存器的復(fù)用,以使用較少硬件資源 來增大一次傳輸數(shù)據(jù)的位數(shù),從而提高數(shù)據(jù)傳輸?shù)恼w速率。對于并行進(jìn)來的數(shù)據(jù)位寬比較長,比如128 位的數(shù)據(jù)時,為了提高傳輸?shù)乃俣龋疚脑O(shè)計(jì)工作中犧牲了資源改進(jìn)了以前的保守的SPI模塊。SPI MaSTer 核在主機(jī)側(cè)作為slave設(shè)備接收數(shù)據(jù),同時作為master設(shè)備發(fā)送數(shù)據(jù)。此模塊verilog代碼經(jīng)ISE綜合后如圖3 所示。


圖3.串行接口模塊電路



評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉