《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > EDA與制造 > 設(shè)計(jì)應(yīng)用 > Simulink環(huán)境下的UART串口行為建模及其HDL代碼自動(dòng)生成
Simulink環(huán)境下的UART串口行為建模及其HDL代碼自動(dòng)生成
來(lái)源:微型機(jī)與應(yīng)用2010年第17期
尹 俊
(上海師范大學(xué) 通信與信息系統(tǒng)系,上海 200063)
摘要: 通用非同步收發(fā)傳輸器UART是一種通用串行數(shù)據(jù)總線,雙向通信,可以實(shí)現(xiàn)全雙工傳輸和接收,用于異步通信。在Simulink環(huán)境下,用STATEFLOW對(duì)其進(jìn)行建模,可以將其原理直接轉(zhuǎn)化成模型,擺脫了傳統(tǒng)方式下直接手寫(xiě)代碼的弊端,而且可以自動(dòng)生成HDL代碼,為FPGA的設(shè)計(jì)、開(kāi)發(fā)開(kāi)辟了新的途徑。
Abstract:
Key words :

摘  要: 通用非同步收發(fā)傳輸器UART是一種通用串行數(shù)據(jù)總線,雙向通信,可以實(shí)現(xiàn)全雙工傳輸和接收,用于異步通信。在Simulink環(huán)境下,用STATEFLOW對(duì)其進(jìn)行建模,可以將其原理直接轉(zhuǎn)化成模型,擺脫了傳統(tǒng)方式下直接手寫(xiě)代碼的弊端,而且可以自動(dòng)生成HDL代碼,為FPGA的設(shè)計(jì)、開(kāi)發(fā)開(kāi)辟了新的途徑。
關(guān)鍵詞: 代碼自動(dòng)生成;STATEFLOW;HDL;FPGA

1 傳統(tǒng)設(shè)計(jì)方法與基于模型設(shè)計(jì)的比較[1]
1.1 傳統(tǒng)設(shè)計(jì)方法的缺陷

    (1)信息的交流依賴文檔
    傳統(tǒng)的開(kāi)發(fā)方法中,在不同階段彼此之間傳遞的信息需要依賴文檔。由于工程師對(duì)系統(tǒng)的認(rèn)識(shí)與理解有一定的局限性以及對(duì)文檔理解的二義性,會(huì)在系統(tǒng)開(kāi)發(fā)的過(guò)程中引入一些缺陷甚至錯(cuò)誤,而這些缺陷或者錯(cuò)誤會(huì)一步一步地傳遞到下一個(gè)設(shè)計(jì)階段。
    (2)早期設(shè)計(jì)階段引入的錯(cuò)誤要在開(kāi)發(fā)后期才能發(fā)現(xiàn)
    由于設(shè)計(jì)的嵌入式軟件算法需要專(zhuān)門(mén)的硬件生產(chǎn)出來(lái)之后進(jìn)行集成的測(cè)試,因此在設(shè)計(jì)階段早期,引入的一些設(shè)計(jì)錯(cuò)誤要在軟、硬件產(chǎn)品都具備之后進(jìn)行集成與測(cè)試時(shí),在開(kāi)發(fā)后期才能夠發(fā)現(xiàn)早期的錯(cuò)誤,此時(shí)修正起來(lái)不是那么簡(jiǎn)單,極有可能需要重新編寫(xiě)軟件,甚至重新開(kāi)發(fā)硬件。
    (3)手寫(xiě)代碼與手寫(xiě)文檔
    傳統(tǒng)的設(shè)計(jì)方法中,產(chǎn)品實(shí)現(xiàn)過(guò)程只能夠利用手寫(xiě)代碼來(lái)完成。這對(duì)于FPGA、HDL的初學(xué)者和工程師都是一件麻煩事。文檔的錯(cuò)誤,再加上手寫(xiě)HDL代碼的錯(cuò)誤,最終的產(chǎn)品就可能有很多問(wèn)題,以致于無(wú)法完成最后的子系統(tǒng)、分系統(tǒng)和全系統(tǒng)的集成工作。
1.2 基于模型的設(shè)計(jì)優(yōu)勢(shì)
    (1)在基于模型的系統(tǒng)設(shè)計(jì)過(guò)程中,所有過(guò)程遵循統(tǒng)一環(huán)境下的統(tǒng)一的模型。由于可以把測(cè)試手段從系統(tǒng)設(shè)計(jì)的初期引入到整個(gè)設(shè)計(jì)流程中,作為規(guī)范的模型能夠通過(guò)執(zhí)行仿真來(lái)驗(yàn)證自己的正確性,從而保證了規(guī)范的正確性。
    (2)連續(xù)不斷的測(cè)試與驗(yàn)證。在模型設(shè)計(jì)的每個(gè)環(huán)節(jié)都引入了測(cè)試仿真手段。利用充分的仿真,可以考察系統(tǒng)不同組件對(duì)整個(gè)系統(tǒng)的影響。
    (3)自動(dòng)代碼生成。傳統(tǒng)的FPGA設(shè)計(jì)方法往往是一開(kāi)始就手寫(xiě)HDL代碼,這對(duì)于初學(xué)者是件困難的。而基于模型的設(shè)計(jì)優(yōu)點(diǎn)是只要知道設(shè)計(jì)原理,就可以用模型直觀地設(shè)計(jì),省去了手寫(xiě)代碼的麻煩,提高了開(kāi)發(fā)的效率,縮短了開(kāi)發(fā)周期。而且模型做成子系統(tǒng)后可以自動(dòng)生成HDL代碼,如果有錯(cuò),只要修改模型,再重新生成HDL代碼即可,為后續(xù)的開(kāi)發(fā)提供了便利。
2 UART串口通信原理
    在空閑時(shí),TXD為高電平。發(fā)送時(shí),先發(fā)送起始位(低電平),再發(fā)送數(shù)據(jù)位,最后發(fā)送停止位(高電平),發(fā)送過(guò)程為并入串出。對(duì)于接收,空閑時(shí)RXD為高電平,低電平來(lái)到時(shí),在該位的當(dāng)中進(jìn)行采樣,如果為0,則為起始位,說(shuō)明可以采集后面的數(shù)據(jù)位,直至最后的停止位,接收過(guò)程為串入并出。
    數(shù)據(jù)時(shí)序圖如圖1所示。

3 用Simulink、STATEFLOW實(shí)現(xiàn)對(duì)UART串口行為建模
    (1)UART發(fā)送模塊的STATEFLOW建模如圖2所示,TxDS與CnTS為并行狀態(tài)。

    TxDS:從IDLE狀態(tài)開(kāi)始,在此狀態(tài)中,將位計(jì)數(shù)(BitCnt)設(shè)置為0、Ready設(shè)置為1(告訴前級(jí)模塊此時(shí)為空閑可以將數(shù)據(jù)并行傳入),將空閑時(shí)為高電平(TxD)設(shè)置為1;當(dāng)并行數(shù)據(jù)有效(Valid=1),將BitCnt設(shè)置為10,將要發(fā)送的數(shù)據(jù)(TxDdata)放入臨時(shí)變量(Tmp),Ready設(shè)置為0(告訴前級(jí)模塊正在發(fā)送數(shù)據(jù),不要再將新的數(shù)據(jù)傳入)從而進(jìn)入起始位的發(fā)送;進(jìn)入START狀態(tài),發(fā)送起始位(TxD=0),當(dāng)波特率發(fā)生器(RateCnt)從15降到0時(shí)即控制每一位發(fā)送的時(shí)間,進(jìn)入RSHIFT狀態(tài)(發(fā)送數(shù)據(jù)位);在RSHIFT中,BitCnt減1(即1位發(fā)送完畢),將存放在Tmp中待發(fā)送數(shù)據(jù)的最低位取出(發(fā)送時(shí)先發(fā)送最低位),然后Tmp右移1位(準(zhǔn)備下一次次低位的發(fā)送),當(dāng)BitCnt減到2時(shí),進(jìn)入STOP狀態(tài);在STOP狀態(tài)中,發(fā)送停止位高電平(TxD=1)。
    CnTS:波特率發(fā)生器。
    (2)UART接收模塊的STATEFLOW建模如圖3所示。RxDS、CnTS、RTS并行工作。

    RxDS:在IDLE狀態(tài)中,將BitCnt置0,判起始位是否到來(lái),如果為0,進(jìn)入START中,BitCnt加1變?yōu)?。當(dāng)RateCnt從7減到0時(shí),即在該位的中間時(shí)進(jìn)行判斷,如果此時(shí)還為0,則確定其為起始位,進(jìn)入DATA;當(dāng)RateCnt從15減到0,即在每個(gè)數(shù)據(jù)位的中間對(duì)數(shù)據(jù)位進(jìn)行判斷,將接收到的最低位存放在臨時(shí)變量Tmp的最高位。通過(guò)不斷的移位就會(huì)將接收到的最低位移到Tmp的最低位,在這個(gè)過(guò)程中BitCnt不斷加1,當(dāng)BitCnt加到9時(shí)回到IDLE。
    CnTS:波特率發(fā)生器。
    RTS:負(fù)責(zé)后續(xù)模塊之間的握手。
    (3)為了生成HDL代碼,必須將UART發(fā)送模塊和接收模塊的STATEFLOW建模部分做成子系統(tǒng),分別如圖4、圖5所示。

    (4)將發(fā)送模塊與接收模塊連接成整個(gè)Simulink模型,如圖6所示。

    (5)UART模型的仿真運(yùn)行結(jié)果如圖7所示。

    (6)將發(fā)送與接收的代碼在Quartus II下做成Symbol,并組成頂層圖形文件,如圖8所示。

    (7)在Quartus II下仿真。
    ①發(fā)送模塊在Quartus II下的仿真如圖9所示。
    ②接收模塊在Quartus II下的仿真如圖10所示。
    ③頂層圖形文件在Quartus II下的仿真如圖11所示。

    本文在Simulink環(huán)境下,用STATEFLOW對(duì)UART進(jìn)行建模。事實(shí)表明,用STATEFLOW建模克服了手寫(xiě)代碼易出錯(cuò)、效率低等弊端,在了解UART原理的基礎(chǔ)上,可用直觀的模型將原理生動(dòng)地表達(dá)出來(lái),為FPGA設(shè)計(jì)人員提供了很大的便利,也為FPGA的設(shè)計(jì)提供了新的方式。
參考文獻(xiàn)
[1] 張威.STATEFLOW邏輯系統(tǒng)建模[M].西安:西安電子科技大學(xué)出版社,2007.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲精品久久久久久久久| 欧美伊人久久| 欧美在线关看| 亚洲男女自偷自拍| 在线一区二区日韩| 99国产精品国产精品久久 | 亚洲人午夜精品| 亚洲欧洲日韩在线| 最近看过的日韩成人| 亚洲欧洲一区二区三区在线观看 | 国产视频一区三区| 国产日本欧美在线观看| 国产人成精品一区二区三| 国产欧美精品国产国产专区| 国产欧美日本一区视频| 国产视频久久| 国产综合亚洲精品一区二| 黑人巨大精品欧美黑白配亚洲 | 亚洲大胆在线| 91久久在线播放| 亚洲麻豆av| 一本一本久久a久久精品牛牛影视| 一区二区高清视频| 亚洲一区二区日本| 欧美亚洲一区二区在线| 久久精品视频在线| 日韩视频一区| 亚洲视频精品| 校园激情久久| 久久久亚洲精品一区二区三区 | 欧美激情综合五月色丁香小说| 欧美人与禽猛交乱配视频| 欧美三级电影网| 国产精品国产a| 国产日韩高清一区二区三区在线| 国产一区二区三区的电影| 黄色工厂这里只有精品| 亚洲黄网站黄| 亚洲区在线播放| 一区二区三区导航| 午夜欧美精品| 久久国产日韩欧美| 亚洲精品日韩在线观看| 日韩一区二区免费高清| 亚洲欧美网站| 久久全球大尺度高清视频| 欧美国产欧美亚洲国产日韩mv天天看完整 | 亚洲欧美国产高清va在线播| 久久国产天堂福利天堂| 亚洲理论在线| 午夜精品久久久久影视| 久久综合免费视频影院| 欧美日韩国产欧| 国产区精品视频| 亚洲黄色在线看| 亚洲在线观看免费视频| 亚洲国产午夜| 亚洲欧洲99久久| 欧美本精品男人aⅴ天堂| 国产精品久久9| 1000部国产精品成人观看| 一道本一区二区| 亚洲二区视频| 亚洲欧美日韩网| 欧美成人一品| 国产欧美日韩不卡免费| 亚洲人成网站精品片在线观看 | 欧美精品九九| 国产午夜亚洲精品不卡| 亚洲精品日韩精品| 久久精品国产96久久久香蕉| 亚洲中字在线| 欧美国产专区| 国内精品美女av在线播放| 99这里只有精品| 亚洲国产二区| 欧美一区二区在线免费观看| 欧美日韩视频在线| 在线播放中文字幕一区| 亚洲专区免费| 这里只有精品丝袜| 欧美国产高潮xxxx1819| 黄色成人在线免费| 亚洲宅男天堂在线观看无病毒| 99热在线精品观看| 媚黑女一区二区| 国产午夜精品一区二区三区视频| 一区二区日韩精品| 亚洲久久成人| 免播放器亚洲一区| 国产一区二区久久| 亚洲婷婷免费| 亚洲网址在线| 欧美精品1区2区3区| 在线观看中文字幕亚洲| 欧美一区国产一区| 久久aⅴ国产紧身牛仔裤| 国产精品爱啪在线线免费观看 | 一本色道久久综合亚洲精品不| 另类酷文…触手系列精品集v1小说| 国产精品欧美一区喷水| 这里只有精品丝袜| 中文欧美字幕免费| 欧美日本二区| 亚洲激情女人| 亚洲黄色在线| 欧美成人福利视频| 伊人成人在线视频| 久久精品亚洲| 老司机精品导航| 激情五月婷婷综合| 久久精品夜夜夜夜久久| 久久在线精品| 韩国一区二区三区美女美女秀| 性色av一区二区三区红粉影视| 午夜欧美理论片| 国产精品一区二区久久久久| 亚洲免费观看| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 另类av一区二区| 国产精品红桃| 亚洲午夜一二三区视频| 亚洲欧美精品suv| 国产精品视频自拍| 亚洲欧美日韩久久精品| 欧美一区二区在线| 国产午夜亚洲精品羞羞网站| 销魂美女一区二区三区视频在线| 欧美一区二区日韩一区二区| 国产区日韩欧美| 久久黄色小说| 麻豆精品国产91久久久久久| 亚洲国产精品一区二区第四页av| 亚洲精品国产系列| 欧美日韩视频在线一区二区 | 韩国精品在线观看| 久久激情五月婷婷| 欧美bbbxxxxx| 亚洲精品久久久久| 亚洲一区二区三区视频播放| 国产精品卡一卡二卡三| 欧美一级夜夜爽| 久久亚洲国产成人| 亚洲国产成人精品女人久久久| 亚洲精品一区在线| 欧美日韩一区三区四区| 亚洲一区二区少妇| 久久久亚洲一区| 91久久午夜| 亚洲欧美精品一区| 国产一区二区三区四区老人| 亚洲电影免费在线 | 最新日韩在线视频| 亚洲一区免费观看| 国产视频精品网| 亚洲精品一级| 国产精品免费看| 久久精品视频免费播放| 欧美日本中文| 午夜久久美女| 欧美高清视频在线| 亚洲一区二区三区免费观看| 久久一区二区三区四区五区| 亚洲品质自拍| 欧美一区视频在线| 亚洲国产日日夜夜| 性刺激综合网| 亚洲第一精品福利| 午夜精品视频一区| 亚洲动漫精品| 欧美一区二区精品在线| 亚洲高清免费视频| 先锋影音久久| 亚洲人久久久| 久久成人免费| 亚洲精品一区二区三区福利| 欧美一区二区啪啪| 亚洲人成亚洲人成在线观看图片| 欧美一区影院| 亚洲日韩欧美一区二区在线| 久久国产婷婷国产香蕉| 亚洲精品一区二区三区蜜桃久| 久久成人精品视频| 一本色道久久综合狠狠躁篇怎么玩 | 欧美专区亚洲专区| 亚洲精品久久久久久久久久久| 久久国产精品黑丝| 国产尤物精品| 在线观看欧美黄色| 亚洲综合色噜噜狠狠| 在线日本成人| 久久gogo国模啪啪人体图| 亚洲免费观看| 蜜桃久久av| 亚洲欧美日韩精品一区二区| 欧美精品一区二区视频| 亚洲第一色在线| 国产免费成人av| 一本大道av伊人久久综合| 伊人色综合久久天天|