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

摘  要: 通用非同步收發傳輸器UART是一種通用串行數據總線,雙向通信,可以實現全雙工傳輸和接收,用于異步通信。在Simulink環境下,用STATEFLOW對其進行建模,可以將其原理直接轉化成模型,擺脫了傳統方式下直接手寫代碼的弊端,而且可以自動生成HDL代碼,為FPGA的設計、開發開辟了新的途徑。
關鍵詞: 代碼自動生成;STATEFLOW;HDL;FPGA

1 傳統設計方法與基于模型設計的比較[1]
1.1 傳統設計方法的缺陷

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

3 用Simulink、STATEFLOW實現對UART串口行為建模
    (1)UART發送模塊的STATEFLOW建模如圖2所示,TxDS與CnTS為并行狀態。

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

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

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

    (5)UART模型的仿真運行結果如圖7所示。

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

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

    本文在Simulink環境下,用STATEFLOW對UART進行建模。事實表明,用STATEFLOW建模克服了手寫代碼易出錯、效率低等弊端,在了解UART原理的基礎上,可用直觀的模型將原理生動地表達出來,為FPGA設計人員提供了很大的便利,也為FPGA的設計提供了新的方式。
參考文獻
[1] 張威.STATEFLOW邏輯系統建模[M].西安:西安電子科技大學出版社,2007.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
在线观看国产成人av片| 亚洲理伦在线| 欧美另类videos死尸| 久久人人97超碰精品888| 午夜精品久久99蜜桃的功能介绍| 国产精品99久久久久久白浆小说| 亚洲美女精品久久| 亚洲精品视频中文字幕| 亚洲欧洲一区二区在线播放 | 这里只有精品视频在线| 亚洲免费观看| 一区二区三区国产精品| 在线亚洲电影| 亚洲一区二区三区免费视频| 亚洲一区二区在线免费观看| 亚洲一级在线| 午夜精品久久久久久久| 欧美一级片一区| 久久精品亚洲一区| 久久在线免费视频| 女人色偷偷aa久久天堂| 欧美成人亚洲成人| 欧美日韩国产一区二区三区地区| 欧美日本国产视频| 国产精品二区在线观看| 国产麻豆午夜三级精品| 国产日韩欧美在线播放| 国产字幕视频一区二区| 亚洲二区视频在线| 日韩视频在线免费观看| 亚洲一区区二区| 久久av二区| 亚洲精品欧美| 亚洲小说春色综合另类电影| 午夜宅男欧美| 久久久久国产一区二区三区四区 | 欧美视频一区在线观看| 国产精品久久久久久久浪潮网站 | 黑人巨大精品欧美一区二区 | 99视频日韩| 亚洲综合视频网| 久久国产日韩| 欧美高清视频一区| 欧美系列精品| 激情欧美一区| 日韩一级黄色大片| 午夜亚洲一区| 亚洲免费播放| 亚洲欧洲99久久| 米奇777在线欧美播放| 欧美日韩一卡| 国产一区二区日韩精品| 亚洲欧洲日本专区| 亚洲亚洲精品三区日韩精品在线视频| 性欧美大战久久久久久久免费观看| 亚洲国产精品悠悠久久琪琪| 一区二区三区高清在线| 欧美专区福利在线| 欧美激情第五页| 国产精品日韩在线一区| 亚洲电影免费在线| 亚洲一区二区三区涩| 亚洲国产一区二区视频| 亚洲午夜精品久久久久久app| 久久riav二区三区| 欧美激情一区二区三区成人| 国产精品日韩欧美一区二区三区| 在线观看不卡| 亚洲图片欧洲图片日韩av| 欧美一区永久视频免费观看| 一本色道久久综合狠狠躁篇的优点| 欧美一区二区三区免费观看视频| 欧美成人精品| 国产噜噜噜噜噜久久久久久久久| 亚洲欧洲精品一区二区三区不卡| 亚洲宅男天堂在线观看无病毒| 亚洲人精品午夜在线观看| 性伦欧美刺激片在线观看| 欧美高清视频在线| 国产视频一区在线| 日韩系列欧美系列| 亚洲电影在线观看| 午夜精品在线看| 欧美韩国在线| 国产揄拍国内精品对白| 国产精品99久久不卡二区| 亚洲经典在线| 久久成人亚洲| 欧美午夜精品久久久久久浪潮| 尤物精品在线| 欧美一级艳片视频免费观看| 亚洲欧美电影在线观看| 欧美久久久久免费| 亚洲电影免费观看高清完整版在线观看 | 欧美极品在线播放| 国产一区二区三区直播精品电影| 亚洲图片你懂的| 中文av一区特黄| 欧美激情中文字幕乱码免费| 影音先锋亚洲一区| 欧美一区二区三区四区夜夜大片| 亚洲综合导航| 欧美先锋影音| 日韩一二三在线视频播| 日韩一区二区免费看| 免费看精品久久片| 激情综合在线| 久久精品亚洲| 久久综合一区| 国产一区二区| 亚洲欧美在线高清| 欧美一区二区三区的| 国产精品午夜视频| 亚洲视频在线免费观看| 亚洲午夜av在线| 欧美日韩123| 亚洲精品免费一区二区三区| 亚洲精品一区在线观看香蕉| 欧美电影免费观看| 亚洲国产天堂久久国产91| 最新中文字幕亚洲| 欧美成人69| 91久久国产综合久久| 日韩视频永久免费| 欧美精品1区| 亚洲人久久久| 中日韩高清电影网| 国产精品v片在线观看不卡| 一区二区三区免费看| 一区二区三区欧美| 欧美午夜精品理论片a级按摩| 亚洲最快最全在线视频| 亚洲神马久久| 国产精品久久久久久久久免费 | 欧美护士18xxxxhd| 亚洲人体1000| 亚洲亚洲精品在线观看| 国产精品久久久久免费a∨| 亚洲综合色丁香婷婷六月图片| 欧美有码视频| 狠狠噜噜久久| 亚洲美女一区| 国产精品av一区二区| 亚洲尤物精选| 久久久爽爽爽美女图片| 在线观看精品视频| 一区二区三区欧美在线| 国产精品爱久久久久久久| 亚洲一区在线视频| 久久精品一二三区| 在线成人亚洲| 一区二区三区四区精品| 国产精品你懂的| 久久精品一本| 欧美日韩a区| 亚洲综合激情| 麻豆av一区二区三区| 最新高清无码专区| 亚洲综合精品一区二区| 国产亚洲a∨片在线观看| 亚洲黄色尤物视频| 欧美视频在线不卡| 久久激情综合网| 欧美日韩午夜剧场| 性欧美video另类hd性玩具| 欧美.www| 亚洲在线国产日韩欧美| 模特精品裸拍一区| 一区二区三区视频观看| 久久亚洲精品一区| 一本久道久久综合婷婷鲸鱼| 久久精品国产亚洲高清剧情介绍| 亚洲激情欧美| 午夜欧美精品| 亚洲人成网站在线观看播放| 欧美一二三视频| 亚洲黄网站在线观看| 欧美一区二区三区在线播放| 亚洲第一福利在线观看| 先锋影音久久| 亚洲国产精品视频| 午夜久久影院| 亚洲片在线资源| 久久久www| 夜色激情一区二区| 老司机凹凸av亚洲导航| 亚洲视频香蕉人妖| 免费成人高清| 欧美一级视频一区二区| 欧美色图麻豆| 亚洲人成人99网站| 国产日韩欧美在线播放不卡| 在线一区二区三区做爰视频网站| 黄色av日韩| 欧美一区二区久久久| 日韩性生活视频| 欧美aaa级| 久久超碰97中文字幕| 国产精品久久久久久影院8一贰佰| 亚洲激情第一页|