新聞中心

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

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

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

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

Verilog HDL 是一種硬件描述語(yǔ)言,他可以用來(lái)進(jìn)行各種級(jí)別的邏輯設(shè)計(jì),可以用來(lái)進(jìn)行數(shù)字邏輯系統(tǒng) 的仿真驗(yàn)證、時(shí)序分析和邏輯綜合等,應(yīng)用十分廣泛。本文使用Verilog設(shè)計(jì) SPI接口模塊,實(shí)現(xiàn)可IP復(fù)用 的通用結(jié)構(gòu)。根據(jù)SPI總線原理,可用幾個(gè)功能模塊來(lái)實(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個(gè)功能模塊[3]:Clock generator、Serial interface、Wishbone interface

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

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

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

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

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

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


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

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

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


圖3.串行接口模塊電路



評(píng)論


相關(guān)推薦

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

關(guān)閉