當(dāng)前位置:首頁(yè) > 通信技術(shù) > 通信技術(shù)
[導(dǎo)讀]1、引言   隨著集成電路(IC)技術(shù)進(jìn)入深亞微米時(shí)代,片上系統(tǒng)SoC(System-on-a-Chip)以其顯著的優(yōu)勢(shì)成為當(dāng)代IC設(shè)計(jì)的熱點(diǎn)?;谲浻布f(xié)同設(shè)計(jì)及IP復(fù)用技術(shù)的片上系統(tǒng)具有功能強(qiáng)大、高集成度和低功耗等優(yōu)點(diǎn),可顯著

1、引言

  隨著集成電路(IC)技術(shù)進(jìn)入深亞微米時(shí)代,片上系統(tǒng)SoC(System-on-a-Chip)以其顯著的優(yōu)勢(shì)成為當(dāng)代IC設(shè)計(jì)的熱點(diǎn)?;谲浻布f(xié)同設(shè)計(jì)及IP復(fù)用技術(shù)的片上系統(tǒng)具有功能強(qiáng)大、高集成度和低功耗等優(yōu)點(diǎn),可顯著降低系統(tǒng)體積和成本,縮短產(chǎn)品上市的時(shí)間。IP核是SoC設(shè)計(jì)的一個(gè)重要組成部分,已成為目前微電子設(shè)計(jì)的熱點(diǎn)和主要方向[1]。

  UART 核以其可靠性、傳送距離遠(yuǎn)的特點(diǎn)被廣泛應(yīng)該到通信系統(tǒng)和嵌入式微處理器上。利用傳統(tǒng)的EDA工具通過(guò)對(duì)RTL代碼仿真、驗(yàn)證、綜合、布局布線后生成網(wǎng)表,下載到FPGA中實(shí)現(xiàn),這樣做成的核主要用于驗(yàn)證的[2],不適合用來(lái)做掩膜。在ASIC/SoC技術(shù)日漸成熟的今天,設(shè)計(jì)商更希望得到能夠做掩膜的IP核,從而便于嵌入到ASIC/SoC設(shè)計(jì)中。本文描述的UART核采用SYNOPSYS軟件的設(shè)計(jì)流程,在RTL級(jí)上進(jìn)行優(yōu)化,解決了綜合優(yōu)化中碰到的一些常見(jiàn)問(wèn)題。利用VCS 仿真、編寫測(cè)試激勵(lì)來(lái)驗(yàn)證,最后用design compile 綜合優(yōu)化做成的IP核可以滿足此要求,應(yīng)用到ASIC/SoC設(shè)計(jì)中將產(chǎn)生巨大的效益。

  2、UART核的功能分析和設(shè)計(jì)

  2.1 UART 核的傳輸協(xié)議與總體模塊設(shè)計(jì)

  通常信息是通過(guò)數(shù)據(jù)幀來(lái)傳送的,由起始位、8位數(shù)據(jù)位、停止位組成。起始位為低電平,表示串行數(shù)據(jù)開(kāi)始傳輸,停止位為高電平,表示數(shù)據(jù)傳送結(jié)束。
 
  UART的結(jié)構(gòu)框圖如圖1所示[3],主要有由波特率發(fā)生器、發(fā)送部分和接收部分等組成。本設(shè)計(jì)采用全雙工異步通信的方式,通過(guò)層次結(jié)構(gòu)化、劃分模塊的方法來(lái)實(shí)現(xiàn)。

圖1 UART 的結(jié)構(gòu)框圖

  2.2 UART 核的功能設(shè)計(jì)

  2.2.1 波特率發(fā)生器

  波特率是用來(lái)實(shí)現(xiàn)數(shù)據(jù)接收和發(fā)送的異步,波特率實(shí)際上就是分頻器。UART的數(shù)據(jù)接收和發(fā)送是通過(guò)對(duì)波特率的設(shè)置進(jìn)行實(shí)現(xiàn)的,本文采用16分頻[3]。

  2.2.2 接收器模塊設(shè)計(jì)

  接收器模塊將8 位串行數(shù)據(jù)并行發(fā)出,用loadbuf 信號(hào)來(lái)裝載八位串行數(shù)據(jù)。接收8位串行數(shù)據(jù)之前先要判斷起始位;當(dāng)起始位到來(lái)后經(jīng)過(guò)5個(gè)clk16x采樣,使采樣點(diǎn)接近中央位置,這樣數(shù)據(jù)穩(wěn)定。然后每過(guò)16個(gè)時(shí)鐘clk16x后,將8位串行數(shù)據(jù)逐位接收進(jìn)來(lái)。當(dāng)數(shù)據(jù)接收完畢,檢查是否到達(dá)停止位,若是則表示接收成功,否則出現(xiàn)幀錯(cuò)誤(framing_err), 并重新檢測(cè)等待。當(dāng)數(shù)據(jù)接收完畢后,等待數(shù)據(jù)的并行發(fā)出,當(dāng)中斷信號(hào)(rask)有效時(shí)發(fā)送數(shù)據(jù)。

  接收數(shù)據(jù)停止位的判斷采用9位移位寄存器(shift_reg)來(lái)實(shí)現(xiàn)。開(kāi)始時(shí)將shift_reg全部置1,當(dāng)16個(gè)clk16x到來(lái)時(shí)候,將串行數(shù)據(jù)從低位到高位逐位地移入到shift_reg的低位到高位。每接收一位數(shù)據(jù)后,判斷是否接收完,由于起始位是最先進(jìn)入shift_reg的,所以當(dāng)數(shù)據(jù)全部接收完后。起始位已經(jīng)進(jìn)入了shift_reg的最后一位,表示數(shù)據(jù)接收完,如果在接收到停止位的邏輯是0,則表示產(chǎn)生幀錯(cuò)誤(framing_err),等待再次檢測(cè)直到停止位為1,表示接收完畢。采用狀態(tài)機(jī)來(lái)實(shí)現(xiàn)數(shù)據(jù)起始位、停止位的判斷和串行數(shù)據(jù)的接收[4]。

  圖2給出了接收模塊的仿真波形。由波形可以看出,當(dāng)輸入0F0H,并行輸出正確,其中state、reset、clk1x、flag、dout和rbuffer分別是狀態(tài)機(jī)、復(fù)位信號(hào)、使異步的時(shí)鐘同步、數(shù)據(jù)發(fā)送出去的標(biāo)志、并行數(shù)據(jù)輸出和數(shù)據(jù)緩沖器,而ask、rask和flag是中斷發(fā)送控制,其中rask是控制數(shù)據(jù)發(fā)送。

圖2 接收模塊的仿真波形

  2.2.3 發(fā)送器模塊設(shè)計(jì)

  發(fā)送器模塊將8位并行數(shù)據(jù)串行發(fā)出,用wr寫信號(hào)裝載并行進(jìn)來(lái)的8位數(shù)據(jù)到9位移位寄存器(shift_reg)的低8位,最高位置為0,表示數(shù)據(jù)的起始位,數(shù)據(jù)發(fā)送完后發(fā)送1。

  數(shù)據(jù)發(fā)送前先發(fā)送1表示等待數(shù)據(jù)的到來(lái)。等待16個(gè)clk16x之后,先發(fā)送一個(gè)1,再過(guò)16個(gè)clk16x之后,發(fā)送起始位0;以后每過(guò)16個(gè)clk16x,發(fā)送一位數(shù)據(jù),直到數(shù)據(jù)發(fā)送完。16個(gè)clk16x用計(jì)數(shù)器設(shè)計(jì),數(shù)據(jù)發(fā)送用狀態(tài)機(jī)實(shí)現(xiàn)。為了避免時(shí)序問(wèn)題以及保證可測(cè)試性,采用單時(shí)鐘沿同步觸發(fā),在15個(gè)clk16x到來(lái)時(shí),將clk1x置1,在下一個(gè)clk16x時(shí)鐘的上升沿到來(lái)后發(fā)送一位數(shù)據(jù),由于clk1x為高電平持續(xù)時(shí)間為一個(gè)clk16時(shí)鐘周期,也就是在clk1x的下降沿把一位數(shù)據(jù)發(fā)送出去。即 
always@(posedge clk16x)
…………
if(clk1x==1)
…………

  圖3給出發(fā)送模塊的仿真波形。由波形可以看出,當(dāng)輸入的并行數(shù)據(jù)是70H,串行輸出正確,其中state、reset、clk1 x、flag和dout分別是狀態(tài)機(jī)、 復(fù)位信號(hào)、使異步的時(shí)鐘同步、數(shù)據(jù)發(fā)送出去的標(biāo)志和串行數(shù)據(jù)輸出,而div8和ask分別是4位計(jì)數(shù)器和中斷請(qǐng)求信號(hào)。

圖3 發(fā)送模塊的仿真波形

  3 UART 核的仿真、驗(yàn)證與綜合、優(yōu)化

  3.1 UART 核的仿真和驗(yàn)證

  UART的功能仿真與驗(yàn)證通過(guò)測(cè)試平臺(tái)(testbench)使用SYNOPSYS軟件的VCS工具,其流程如圖4所示[5]。接收和發(fā)送數(shù)據(jù)的正確性已通過(guò)圖2和3所示仿真波形驗(yàn)證了。

圖4 基于testbench 的仿真流程

  3.2 UART 核的綜合、優(yōu)化

  3.2.1 綜合存在的問(wèn)題

  一般在UART設(shè)計(jì)中,采用多時(shí)鐘,電平觸發(fā),并且判斷數(shù)據(jù)的起始和停止采用額外的存儲(chǔ)器或計(jì)數(shù)器,這必然給驗(yàn)證和綜合優(yōu)化帶來(lái)時(shí)序上的問(wèn)題,同時(shí)會(huì)產(chǎn)生毛刺和亞穩(wěn)態(tài),使得電路設(shè)計(jì)不夠完善。

  3.2.2 毛刺的解決

  在通常的UART設(shè)計(jì)中存在組合邏輯,當(dāng)輸入的信號(hào)由高電平變低電平而其它某個(gè)信號(hào)由低電平變高電平時(shí),由于在信號(hào)變化的瞬間,組合邏輯的輸出并非同時(shí)變化,而是有先后之分,將導(dǎo)致輸出出現(xiàn)尖脈沖,即產(chǎn)生毛刺。本文采用時(shí)鐘沿(上升沿)觸發(fā),即將組合邏輯輸出端通過(guò)加到寄存器后輸出,從而避免毛刺的產(chǎn)生。

  3.2.2 多時(shí)鐘與亞穩(wěn)態(tài)的解決

  在通常的UART設(shè)計(jì)中,由于CPU時(shí)鐘與UART的數(shù)據(jù)接收、發(fā)送時(shí)鐘是處在不同的時(shí)鐘域,時(shí)鐘頻率和相位上存在差異,導(dǎo)致時(shí)序不能滿足建立時(shí)間和保持時(shí)間的要求,即數(shù)據(jù)的輸出處于不確定狀態(tài),從而出現(xiàn)時(shí)序違反(slack<0)和亞穩(wěn)態(tài)。本文通過(guò)采用同步電路設(shè)計(jì),有效地解決時(shí)序和亞穩(wěn)態(tài)的問(wèn)題[6][7]。

  3.2.3 UART 核的綜合與優(yōu)化

  通過(guò)對(duì)RTL級(jí)進(jìn)行優(yōu)化,再仿真驗(yàn)證正確后,可以對(duì)UART核進(jìn)行綜合優(yōu)化。本文采用SYNOPSYS軟件的design compile進(jìn)行綜合優(yōu)化,利用tcl(tool command language)語(yǔ)言編寫綜合優(yōu)化的腳本。采用0.35um的工藝,將時(shí)鐘周期設(shè)置為5ns,在滿足時(shí)序(slack>0)的基礎(chǔ)上經(jīng)過(guò)綜合優(yōu)化,生成的時(shí)序、功耗、面積等參數(shù)如表1所示,優(yōu)化后的功耗和面積滿足了ASIC/SoC的要求。
 

表1 接收/發(fā)送模塊綜合得出的功耗、面積、時(shí)序等參數(shù)

4 結(jié)束語(yǔ)

  本文利用SYNOPSYS軟件設(shè)計(jì)IP核,更適合用于ASIC/SoC設(shè)計(jì),而采用傳統(tǒng)的EDA軟件實(shí)現(xiàn)的則適合用在FPGA上,不適合用來(lái)做掩膜生成ASIC/SoC。本UART核的邏輯設(shè)計(jì)采用VerilogHDL語(yǔ)言,用狀態(tài)機(jī)和移位寄存器設(shè)計(jì)使整個(gè)設(shè)計(jì)的時(shí)序清晰,同時(shí)減少了接收模塊停止位的判斷,通過(guò)對(duì)RTL級(jí)優(yōu)化避免了毛刺、亞穩(wěn)態(tài)、多時(shí)鐘等問(wèn)題,仿真和驗(yàn)證采用的是SYNOPSYS軟件的VCS,通過(guò)對(duì)時(shí)序、功耗、面積的綜合考慮,最后通過(guò)SYNOPSYS軟件的design compile 綜合優(yōu)化完成的IP 核可成功應(yīng)用到ASIC/SoC 設(shè)計(jì)上。

  本文作者創(chuàng)新點(diǎn)是利用SYNOPSYS軟件設(shè)計(jì)IP核,適合直接應(yīng)用到ASIC/SoC設(shè)計(jì)中,并對(duì)RTL級(jí)做了優(yōu)化,消除了在UART設(shè)計(jì)中碰到毛刺、亞穩(wěn)態(tài)、多時(shí)鐘等問(wèn)題;通過(guò)測(cè)試平臺(tái)(testbench)來(lái)仿真和驗(yàn)證,RTL 代碼精簡(jiǎn),時(shí)序、面積和功耗都做了優(yōu)化,達(dá)到了IP核的要求。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉