版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 摘要</b></p><p> 通用串口是遠(yuǎn)程通信接口,在數(shù)字系統(tǒng)使用很普遍,是一個(gè)很重要的部件。本論文使用Verilog HDL 語(yǔ)言描述硬件功能,利用QuartusII 5.0在 FPGA 芯片上的綜合描述,采用模塊化設(shè)計(jì)方法設(shè)計(jì)UART(通用異步收發(fā)器)的各個(gè)模塊。其中包括波特發(fā)生器,程序控制器,UART數(shù)據(jù)接收器和UART數(shù)據(jù)發(fā)送器,本文采用的外部時(shí)鐘
2、為48MHZ,波特率為9600。在QuartusII 5.0和Modelsim6.0環(huán)境下進(jìn)行設(shè)計(jì)、編譯和仿真。最后的程序編譯仿真表明系統(tǒng)數(shù)據(jù)完全正確。</p><p> 關(guān)鍵詞:VerilogHDL; UART;幀格式;FPGA;</p><p><b> Abstract</b></p><p> In this paper, the
3、 use of hardware description languages Verilog VHDL function, the use of Altera's FPGA chips, the design of modular design method of UART (Universal Asynchronous Receiver Transmitter) of each module, including Porter
4、, generators, process controllers, UART receiver data and the UART transmitter data. QuartusII 5.0 and Modelsim6.0 in environment design, compilation, simulation and downloading. Finally, simulation results show that the
5、 procedures for compiling data entirely correc</p><p> Key words: VerilogHDL; UART; frame format; FPGA</p><p><b> 目錄</b></p><p><b> 第一章 緒論1</b></p>
6、<p><b> 1.1引言1</b></p><p> 1.2 什么是Verilog HDL?1</p><p><b> 1.3 歷史2</b></p><p> 1.4 主要能力2</p><p><b> 1.5 模塊4</b><
7、/p><p> 1.6 數(shù)據(jù)流描述方式5</p><p> 第二章片上系統(tǒng)SOC與FPGA的現(xiàn)狀6</p><p> 2.1 片上系統(tǒng)SOC介紹6</p><p> 2.2 FPGA技術(shù)介紹6</p><p> 2.3 FPGA 核心設(shè)計(jì)流程7</p><p> 2.3.1 設(shè)
8、計(jì)流程圖7</p><p> 2.3.2關(guān)鍵步驟的實(shí)現(xiàn)8</p><p> 2.3.2.1 功能仿真8</p><p> 2.3.2.2 邏輯綜合9</p><p> 2.3.2.3 前仿真9</p><p> 2.3.2.4 布局布線10</p><p> 2.3.2.
9、5 后仿真(時(shí)序仿真)11</p><p> 第三章UART設(shè)計(jì)12</p><p> 3.1 UART的幀格式12</p><p> 3.2 UART模塊13</p><p> 3.2.1主要引腳功能介紹13</p><p> 3.2.2UART主體程序14</p><p&g
10、t; 3.3UART發(fā)送模塊15</p><p> 3.3.1UART的數(shù)據(jù)發(fā)送服務(wù)15</p><p> 3.3.2UART的數(shù)據(jù)發(fā)送操作16</p><p> 3.3.3UART的數(shù)據(jù)發(fā)送模塊程序17</p><p> 3.3.4UART的數(shù)據(jù)發(fā)送模塊程序仿真圖20</p><p> 3.4U
11、ART接收模塊21</p><p> 3.4.1UART數(shù)據(jù)接收服務(wù)21</p><p> 3.4.2UART數(shù)據(jù)接收操作22</p><p> 3.4.3UART的數(shù)據(jù)接收模塊程序22</p><p> 3.4.4UART的數(shù)據(jù)接收模塊程序功能仿真圖25</p><p> 3.5UART控制器2
12、6</p><p> 3.5.1UART控制器服務(wù)26</p><p> 3.5.2UART控制器模塊程序26</p><p> 3.5.3UART控制器模塊程序仿真圖28</p><p> 3.6UART波特發(fā)生器29</p><p> 3.6.1UART波特發(fā)生器服務(wù)29</p>
13、<p> 3.6.2UART波特發(fā)生器模塊程序29</p><p> 3.6.13UART波特發(fā)生器程序仿真圖30</p><p><b> 結(jié)論31</b></p><p><b> 參考文獻(xiàn)32</b></p><p><b> 致謝33</b>
14、;</p><p><b> 附錄34</b></p><p><b> 外文資料原文35</b></p><p><b> 譯文43</b></p><p><b> 緒論</b></p><p><b>
15、 1.1引言</b></p><p> 21世紀(jì),電子技術(shù)迅猛發(fā)展,高新技術(shù)日新月異。傳統(tǒng)的設(shè)計(jì)方法正逐步退出歷史舞臺(tái),取而代之的是基于EDA技術(shù)的芯片設(shè)計(jì)技術(shù),它正在成為電子系統(tǒng)設(shè)計(jì)的主流。大規(guī)??删幊唐骷F(xiàn)場(chǎng)可編程門陣列FPGA(Field Programmable Gate Array)和復(fù)雜可編程邏輯器件CPLD(Complex Programmable Logic Device)是當(dāng)今應(yīng)
16、用最廣泛的兩類可編程專用集成電路(ASIC)。其性能好、可靠性高、容量大、體積小,微功耗、速度快、使用靈活、設(shè)計(jì)周期短、開發(fā)成本低,靜態(tài)可重復(fù)編程、動(dòng)態(tài)在系統(tǒng)重構(gòu)、硬件功能可以像軟件一樣通過(guò)編程來(lái)修改,極大地提高了電子系統(tǒng)設(shè)計(jì)的靈活性和通用性。電子工程師和科學(xué)研究人員利用該類器件可以在辦公室或?qū)嶒?yàn)室設(shè)計(jì)出所需要的專用集成電路,大大縮短產(chǎn)品的研發(fā)周期和降低成本。</p><p> 近年來(lái),可編程邏輯器件的開發(fā)生產(chǎn)
17、和銷售規(guī)模以驚人的速度增長(zhǎng),且廣泛地應(yīng)用于航空航天、網(wǎng)絡(luò)通信、軍用雷達(dá)、儀器儀表、工業(yè)控制、醫(yī)用CT、家用電器、手機(jī)和計(jì)算機(jī)等各個(gè)領(lǐng)域。它的廣泛應(yīng)用,使傳統(tǒng)的設(shè)計(jì)方法正在進(jìn)行一場(chǎng)巨大的變革。異步串行通信要求的傳輸線少,可靠性高,傳輸距離遠(yuǎn),被廣泛應(yīng)用于微機(jī)和外設(shè)的數(shù)據(jù)交換。通常都由通用異步收發(fā)器UART(Universal AsynchronousReceiver- Transmitter)來(lái)實(shí)現(xiàn)該功能,如IBM PC 機(jī)中作為串行接口
18、芯片的National INS 8250。在實(shí)際應(yīng)用中,往往只需要UART 的幾個(gè)主要功能,專用的接口芯片會(huì)造成資源浪費(fèi)和成本提高,特別是近來(lái)電子設(shè)計(jì)領(lǐng)域中日趨成熟的SOC 技術(shù),由于要在單塊或極少數(shù)的幾塊芯片中實(shí)現(xiàn)整個(gè)系統(tǒng)的功能,設(shè)計(jì)者就可以將類似UART的功能模塊集成到FPGA 中。</p><p> 1.2 什么是Verilog HDL?</p><p> Verilog HD
19、L是一種硬件描述語(yǔ)言,用于從算法級(jí)、門級(jí)到開關(guān)級(jí)的多種抽象設(shè)計(jì)層次的數(shù)字系統(tǒng)建模。被建模的數(shù)字系統(tǒng)對(duì)象的復(fù)雜性可以介于簡(jiǎn)單的門和完整的電子數(shù)字系統(tǒng)之間。數(shù)字系統(tǒng)能夠按層次描述,并可在相同描述中顯式地進(jìn)行時(shí)序建模。Verilog HDL 語(yǔ)言具有下述描述能力:設(shè)計(jì)的行為特性、設(shè)計(jì)</p><p> 的數(shù)據(jù)流特性、設(shè)計(jì)的結(jié)構(gòu)組成以及包含響應(yīng)監(jiān)控和設(shè)計(jì)驗(yàn)證方面的時(shí)延和波形產(chǎn)生機(jī)制。所有這些都使用同一種建模語(yǔ)言。此外,
20、 Verilog HDL語(yǔ)言提供了編程語(yǔ)言接口,通過(guò)該接口可以在模擬、驗(yàn)證期間從設(shè)計(jì)外部訪問(wèn)設(shè)計(jì),包括模擬的具體控制和運(yùn)行。Verilog HDL語(yǔ)言不僅定義了語(yǔ)法,而且對(duì)每個(gè)語(yǔ)法結(jié)構(gòu)都定義了清晰的模擬、仿真語(yǔ)義。</p><p> 因此,用這種語(yǔ)言編寫的模型能夠使用Ve r i l o g仿真器進(jìn)行驗(yàn)證。語(yǔ)言從C編程語(yǔ)言中繼承了多種操作符和結(jié)構(gòu)。Verilog HDL提供了擴(kuò)展的建模能力,其中許多擴(kuò)展最初很難
21、理解。但是,Verilog HDL語(yǔ)言的核心子集非常易于學(xué)習(xí)和使用,這對(duì)大多數(shù)建模應(yīng)用來(lái)說(shuō)已經(jīng)足夠。當(dāng)然,完整的硬件描述語(yǔ)言足以對(duì)從最復(fù)雜的芯片到完整的電子系統(tǒng)進(jìn)行描述。</p><p><b> 1.3 歷史</b></p><p> Verilog HDL語(yǔ)言最初是于1 9 8 3年由Gateway Design Automation 公司為其模擬器產(chǎn)品開發(fā)的
22、硬件建模語(yǔ)言。那時(shí)它只是一種專用語(yǔ)言。 由于他們的模擬、仿真器產(chǎn)品的廣泛使用,Verilog HDL 作為一種便于使用且實(shí)用的語(yǔ)言逐漸為眾多設(shè)計(jì)者所接受。在一次努力增加語(yǔ)言普及性的活動(dòng)中, Verilog HDL語(yǔ)言于1 9 9 0年被推向公眾領(lǐng)域。Open Verilog International(O V I)是促進(jìn)Ve r i l o g發(fā)展的國(guó)際性組織。1 9 9 2年, O V I決定致力于推廣Verilog OVI標(biāo)準(zhǔn)成為I
23、 E E E標(biāo)準(zhǔn)。這一努力最后獲得成功, Verilog 語(yǔ)言于1 9 9 5年成為I E E E標(biāo)準(zhǔn),稱為IEEE Std1 3 6 4-1 9 9 5。完整的標(biāo)準(zhǔn)在Ve r i l o g硬件描述語(yǔ)言參考手冊(cè)中有詳細(xì)描述。</p><p><b> 1.4 主要能力</b></p><p> 下面列出的是Ve r i l o g硬件描述語(yǔ)言的主要能力:<
24、/p><p> ? 基本邏輯門,例如a n d、o r和n a n d等都內(nèi)置在語(yǔ)言中。</p><p> ? 用戶定義原語(yǔ)( U D P)創(chuàng)建的靈活性。用戶定義的原語(yǔ)既可以是組合邏輯原語(yǔ),也可以是時(shí)序邏輯原語(yǔ)。</p><p> ? 開關(guān)級(jí)基本結(jié)構(gòu)模型,例如p m o s 和n m o s等也被內(nèi)置在語(yǔ)言中。</p><p> ? 提供
25、顯式語(yǔ)言結(jié)構(gòu)指定設(shè)計(jì)中的端口到端口的時(shí)延及路徑時(shí)延和設(shè)計(jì)的時(shí)序檢查。</p><p> ? 可采用三種不同方式或混合方式對(duì)設(shè)計(jì)建模。這些方式包括:行為描述方式—使用過(guò)程化結(jié)構(gòu)建模;數(shù)據(jù)流方式—使用連續(xù)賦值語(yǔ)句方式建模;結(jié)構(gòu)化方式—使用門和模塊實(shí)例語(yǔ)句描述建模。</p><p> ? Verilog HDL中有兩類數(shù)據(jù)類型:線網(wǎng)數(shù)據(jù)類型和寄存器數(shù)據(jù)類型。線網(wǎng)類型表示構(gòu)件間的物理連線,而寄
26、存器類型表示抽象的數(shù)據(jù)存儲(chǔ)元件。</p><p> ? 能夠描述層次設(shè)計(jì),可使用模塊實(shí)例結(jié)構(gòu)描述任何層次。</p><p> ? 設(shè)計(jì)的規(guī)模可以是任意的;語(yǔ)言不對(duì)設(shè)計(jì)的規(guī)模(大小)施加任何限制。</p><p> ? Verilog HDL不再是某些公司的專有語(yǔ)言而是I E E E標(biāo)準(zhǔn)。</p><p> ? 人和機(jī)器都可閱讀Veri
27、log 語(yǔ)言,因此它可作為E D A的工具和設(shè)計(jì)者之間的交互語(yǔ)言。</p><p> ? Verilog HDL語(yǔ)言的描述能力能夠通過(guò)使用編程語(yǔ)言接口( P L I)機(jī)制進(jìn)一步擴(kuò)展。P L I是允許外部函數(shù)訪問(wèn)Verilog 模塊內(nèi)信息、允許設(shè)計(jì)者與模擬器交互的例程集合。</p><p> ? 設(shè)計(jì)能夠在多個(gè)層次上加以描述,從開關(guān)級(jí)、門級(jí)、寄存器傳送級(jí)( RT L)到算法級(jí),包括進(jìn)程和
28、隊(duì)列級(jí)。</p><p> ? 能夠使用內(nèi)置開關(guān)級(jí)原語(yǔ)在開關(guān)級(jí)對(duì)設(shè)計(jì)完整建模。</p><p> ? 同一語(yǔ)言可用于生成模擬激勵(lì)和指定測(cè)試的驗(yàn)證約束條件,例如輸入值的指定。</p><p> ? Verilog HDL 能夠監(jiān)控模擬驗(yàn)證的執(zhí)行,即模擬驗(yàn)證執(zhí)行過(guò)程中設(shè)計(jì)的值能夠被監(jiān)控和顯示。這些值也能夠用于與期望值比較,在不匹配的情況下,打印報(bào)告消息。</
29、p><p> ? 在行為級(jí)描述中, Verilog HDL不僅能夠在RT L級(jí)上進(jìn)行設(shè)計(jì)描述,而且能</p><p> 夠在體系結(jié)構(gòu)級(jí)描述及其算法級(jí)行為上進(jìn)行設(shè)計(jì)描述。</p><p> ? 能夠使用門和模塊實(shí)例化語(yǔ)句在結(jié)構(gòu)級(jí)進(jìn)行結(jié)構(gòu)描述。建</p><p> 模能力,即在一個(gè)設(shè)計(jì)中每個(gè)模塊均可以在不同設(shè)計(jì)層次上建模。</p>
30、<p> ? Verilog HDL 還具有內(nèi)置邏輯函數(shù),例如&(按位與)和|(按位或)。</p><p> ? 對(duì)高級(jí)編程語(yǔ)言結(jié)構(gòu),例如條件語(yǔ)句、情況語(yǔ)句和循環(huán)語(yǔ)句,語(yǔ)言中都可以使用。</p><p> ? 可以顯式地對(duì)并發(fā)和定時(shí)進(jìn)行建模。</p><p> ? 提供強(qiáng)有力的文件讀寫能力。</p><p>
31、? 語(yǔ)言在特定情況下是非確定性的,即在不同的模擬器上模型可以產(chǎn)生不同</p><p> 的結(jié)果;例如,事件隊(duì)列上的事件順序在標(biāo)準(zhǔn)中沒(méi)有定義。</p><p><b> 1.5模塊</b></p><p> 模塊是Verilog 的基本描述單位,用于描述某個(gè)設(shè)計(jì)的功能或結(jié)構(gòu)及其與其他模塊通信的外部端口。一個(gè)設(shè)計(jì)的結(jié)構(gòu)可使用開關(guān)級(jí)原語(yǔ)、門級(jí)原
32、語(yǔ)和用戶定義的原語(yǔ)方式描述; 設(shè)計(jì)的數(shù)據(jù)流行為使用連續(xù)賦值語(yǔ)句進(jìn)行描述; 時(shí)序行為使用過(guò)程結(jié)構(gòu)描述。一個(gè)模塊可以在另一個(gè)模塊中使用。一個(gè)模塊的基本語(yǔ)法如下:</p><p> Module modulename(portlist);</p><p> Declarations;</p><p> reg, wire, parameter,</p>
33、<p> input, output, inout,</p><p> function, task, . . .</p><p> Statements:</p><p> Initial statement</p><p> Always statement</p><p> Module
34、instantiation</p><p> Gate instantiation</p><p> UDP instantiation</p><p> Continuous assignment</p><p><b> endmodule</b></p><p> 說(shuō)明部分用于定義
35、不同的項(xiàng),例如模塊描述中使用的寄存器和參數(shù)。語(yǔ)句定義設(shè)計(jì)的功能和結(jié)構(gòu)。說(shuō)明部分和語(yǔ)句可以散布在模塊中的任何地方;但是變量、寄存器、線網(wǎng)和參數(shù)等的說(shuō)明部分必須在使用前出現(xiàn)。為了使模塊描述清晰和具有良好的可讀性, 最好將所有的說(shuō)明部分放在語(yǔ)句前。本書中的所有實(shí)例都遵守這一規(guī)范。</p><p> 圖1- 2為建模一個(gè)半加器電路的模塊的簡(jiǎn)單實(shí)例。</p><p> Module halfad
36、der(A,B,Sum,Carry);</p><p> Input: A, B;</p><p> Output: Sum, Carry;</p><p> assign #2 Sum = A ^ B;</p><p> assign #5 Carry = A & B;</p><p> end
37、module圖1-2半加法器</p><p> 模塊的名字是halfadder。模塊有4個(gè)端口: 兩個(gè)輸</p><p> 入端口A和B,兩個(gè)輸出端口S u m和C a rry。由于沒(méi)有定義端口的位數(shù), 所有端口大小都為1位;同時(shí), 由于沒(méi)有各端口的數(shù)據(jù)類型說(shuō)明, 這四個(gè)端口都是線網(wǎng)數(shù)據(jù)類型。模塊包含兩條描述半加器數(shù)據(jù)流行為的連續(xù)賦值語(yǔ)句。從這種意義上講,這些語(yǔ)句在模塊中出現(xiàn)的順序
38、無(wú)關(guān)緊要,這些語(yǔ)句是并發(fā)的。每條語(yǔ)句的執(zhí)行順序依賴于發(fā)生在變量A和B上的事件。</p><p> 在模塊中,可用下述方式描述一個(gè)設(shè)計(jì):</p><p><b> 1) 數(shù)據(jù)流方式;</b></p><p><b> 2) 行為方式;</b></p><p><b> 3) 結(jié)構(gòu)方式
39、;</b></p><p> 4) 上述描述方式的混合。</p><p> 1.6 數(shù)據(jù)流描述方式</p><p> 用數(shù)據(jù)流描述方式對(duì)一個(gè)設(shè)計(jì)建模的最基本的機(jī)制就是使用連續(xù)賦值語(yǔ)句。在連續(xù)賦值語(yǔ)句中,某個(gè)值被指派給線網(wǎng)變量。連續(xù)賦值語(yǔ)句的語(yǔ)法為:</p><p> a s s i g n [d e l a y] L H
40、S n e t = RHS_ expression;</p><p> 右邊表達(dá)式使用的操作數(shù)無(wú)論何時(shí)發(fā)生變化, 右邊表達(dá)式都重新計(jì)算, 并且在指定的時(shí)延后變化值被賦予左邊表達(dá)式的線網(wǎng)變量。時(shí)延定義了右邊表達(dá)式操作數(shù)變化與賦值給左邊表達(dá)式之間的持續(xù)時(shí)間。如果沒(méi)有定義時(shí)延值, 缺省時(shí)延為0。</p><p> 1.6 行為描述方式</p><p> 設(shè)計(jì)的行為功
41、能使用下述過(guò)程語(yǔ)句結(jié)構(gòu)描述:</p><p> 1)initial語(yǔ)句:此語(yǔ)句只執(zhí)行一次。</p><p> 2) always語(yǔ)句:此語(yǔ)句總是循環(huán)執(zhí)行, 或者說(shuō)此語(yǔ)句重復(fù)執(zhí)行。</p><p> 只有寄存器類型數(shù)據(jù)能夠在這兩種語(yǔ)句中被賦值。寄存器類型數(shù)據(jù)在被賦新值前保持原有值不變。所有的初始化語(yǔ)句和a l w a y s語(yǔ)句在0時(shí)刻并發(fā)執(zhí)行。</p&g
42、t;<p> 第二章片上系統(tǒng)SOC與FPGA的現(xiàn)狀</p><p> 2.1 片上系統(tǒng)SOC介紹</p><p> SOC(systemonChip)稱為片上系統(tǒng)。它最早產(chǎn)生于20世紀(jì)90年代中期,是一種將一個(gè)完整系統(tǒng)所有不同的功能塊一次直接集成于一顆硅片上的技術(shù)。根據(jù)這種技術(shù)所制造出的芯片,就叫做片上系統(tǒng),也稱為系統(tǒng)級(jí)芯片。SOC由可設(shè)計(jì)復(fù)用的IP核組成,采用超深亞微
43、米工藝技術(shù)制造。這種結(jié)構(gòu)使得在芯片設(shè)計(jì)過(guò)程中,能做到各種資源的最優(yōu)化利用,使設(shè)計(jì)周期縮短,資源利用率最高。</p><p> 在一般設(shè)計(jì)過(guò)程中,設(shè)計(jì)人員要做的只是前端設(shè)計(jì),如系統(tǒng)結(jié)構(gòu)設(shè)計(jì)、硬件編程、功能仿真、時(shí)序仿真,然后向芯片制造商提供生成的網(wǎng)表。芯片制造商則負(fù)責(zé)芯片的物理設(shè)計(jì)、封裝、測(cè)試等工作。但是隨著系統(tǒng)集成度的不斷提高以及終端用戶需求的多樣化,系統(tǒng)功能愈來(lái)愈復(fù)雜,如何確定系統(tǒng)結(jié)構(gòu)并完成軟硬件的劃分,傳統(tǒng)
44、的系統(tǒng)設(shè)計(jì)方法己經(jīng)不能很好滿足設(shè)計(jì)的需求。為了提高芯片的設(shè)計(jì)效率,縮短設(shè)計(jì)周期,系統(tǒng)設(shè)計(jì)需要新的設(shè)計(jì)理論體系和設(shè)計(jì)方法,以克服傳統(tǒng)設(shè)計(jì)方法中前端設(shè)計(jì)和后端設(shè)計(jì)相互分離的弊病 。SOC技術(shù)從誕生到目前被廣泛采用,也正是基于這一背景。本文設(shè)計(jì)工作采用的FPGA技術(shù),就是目前流行的一種SOC。</p><p> 2.2 FPGA技術(shù)介紹</p><p> FPGA(Field Program
45、mable Gate Array)稱為現(xiàn)場(chǎng)可編程門陣列,是在CPLD的基礎(chǔ)上發(fā)展起來(lái)的新型高性能可編程邏輯器件,它一般采用SRAM工藝,也有一些專用器件采用Flash工藝或反熔絲(Anti一Fuse)工藝等。FPGA的集成度很高,其器件密度從數(shù)萬(wàn)系統(tǒng)門到數(shù)千萬(wàn)系統(tǒng)門不等,可以完成極其復(fù)雜的組合與時(shí)序邏輯電路功能,適用于高速、高密度的高端數(shù)字邏輯電路設(shè)計(jì)領(lǐng)域。使用FPGA技術(shù)設(shè)計(jì)各種大規(guī)?;虺笠?guī)模的組合、時(shí)序邏輯電路,不僅可以使設(shè)計(jì)者避
46、免直接與若干復(fù)雜煩瑣的電路元器件的選擇布線直接接觸,而且開發(fā)設(shè)計(jì)過(guò)程中采用的類似于軟件開發(fā)的模塊化設(shè)計(jì)方法還更加便于多人合作設(shè)計(jì)開發(fā),這就極大地提高了產(chǎn)品規(guī)劃設(shè)計(jì)的效率。因此,F(xiàn)PGA技術(shù)己經(jīng)成為目前國(guó)際上通</p><p> 行的硬件芯片產(chǎn)品設(shè)計(jì)開發(fā)的主流。</p><p> 現(xiàn)在通用的FPGA芯片都含有大容量的ROM和RAM單元、可編程邏輯單元、豐富的布線資源等基本組成部分,這些資
47、源已經(jīng)完全可以滿足目前絕大多數(shù)設(shè)計(jì)開發(fā)的需要。隨著工藝技術(shù)的發(fā)展與市場(chǎng)需要,超大規(guī)模、高速、低功耗的新型FPGA不斷推陳出新。一些高級(jí)的FPGA智能芯片甚至包含了中央處理器(CPU)和內(nèi)嵌專用硬核。FPGA的主要器件供應(yīng)商有Xilinx、Altera、Lattice、Actel</p><p> 和Atmel等,本文工作所用的FPGA開發(fā)板和芯片就是由Altera公司提供的。</p><p&
48、gt; 2.3 FPGA 核心設(shè)計(jì)流程</p><p> 2.3.1 設(shè)計(jì)流程圖</p><p> 圖2-1FPGA設(shè)計(jì)流程圖</p><p><b> 說(shuō)明:</b></p><p> 邏輯仿真器主要指modelsim,Verilog-XL。</p><p> 邏輯綜合器主要指Le
49、onardoSpectrum、Synplify、FPGA Express/FPGA Compiler等。</p><p> FPGA廠家工具指的是如Altera的Max+PlusII、QuartusII,Xilinx的Foundation、Alliance、ISE4.1等。</p><p> 2.3.2關(guān)鍵步驟的實(shí)現(xiàn)</p><p> 2.3.2.1 功能仿真
50、</p><p> 圖2-2FPGA設(shè)計(jì)流程之功能仿真</p><p><b> 說(shuō)明:</b></p><p> “調(diào)用模塊的行為仿真模型”指的是RTL代碼中引用的由廠家提供的宏模塊/IP,如Altera 提供的LPM庫(kù)中的乘法器、存儲(chǔ)器等部件的行為模型。</p><p> 2.3.2.2 邏輯綜合</p
51、><p> 圖2-3FPGA設(shè)計(jì)流程之邏輯綜合</p><p><b> 說(shuō)明:</b></p><p> “調(diào)用模塊的黑盒子接口”的導(dǎo)入,是由于RTL代碼調(diào)用了一些外部模塊,而這些外部模塊不能被綜合或無(wú)需綜合,但邏輯綜合器需要其接口的定義來(lái)檢查邏輯并保留這些模塊的接口。</p><p> 2.3.2.3 前仿真&l
52、t;/p><p> 如圖2-4FPGA設(shè)計(jì)流程之前仿真</p><p><b> 說(shuō)明:</b></p><p> 一般來(lái)說(shuō),對(duì)FPGA設(shè)計(jì)這一步可以跳過(guò)不做,但可用于debug綜合有無(wú)問(wèn)題。</p><p> 2.3.2.4 布局布線 </p><p> 圖2-5FPGA設(shè)計(jì)流程之布局布
53、線</p><p> 2.3.2.5 后仿真(時(shí)序仿真) </p><p> 圖2-6FPGA設(shè)計(jì)流程之后仿真</p><p> 隨著微機(jī)系統(tǒng)的廣泛運(yùn)用和微機(jī)網(wǎng)絡(luò)的極大發(fā)展,UART(Universal Asynchronous Receive Transmitter)在數(shù)據(jù)通信及控制系統(tǒng)中得到了廣泛運(yùn)用。8250,NS 16450等芯片都是常見的UAR
54、T器件,這類芯片己經(jīng)相當(dāng)復(fù)雜,有的含有許多輔助模塊(如FIFO),但在實(shí)際中有時(shí)只需要使用UART的部分功能,因而會(huì)造成一定的資源浪費(fèi)。</p><p> FPGA在現(xiàn)代電子設(shè)計(jì)中的廣泛運(yùn)用,使我們可以充分利用其資源,在芯片上集成UART的功能模塊,這樣就無(wú)需外接專用UART芯片,從而簡(jiǎn)化了電路,縮小了體積,設(shè)計(jì)的靈活性更大。</p><p><b> 第三章UART設(shè)計(jì)&l
55、t;/b></p><p> 3.1 UART的幀格式</p><p> 在 UART 中,數(shù)據(jù)位是以字符為傳送單位,數(shù)據(jù)的前、后要有起始位、停止位,另外可以在停止位的前面加上一個(gè)比特(bit)的校驗(yàn)位。其幀格式如圖所示。</p><p><b> 數(shù)據(jù)位</b></p><p> 起始位D0 D1 D2
56、 D3 —————— D7 校驗(yàn)位 停止位</p><p> 以9600波特率接收或發(fā)送,每一位時(shí)間為</p><p> 1/9600秒,或48MHZ晶振5000次計(jì)數(shù)</p><p><b> 圖3_1數(shù)據(jù)幀格式</b></p><p> 文章 通 過(guò) 分析UART的功能,利用有限狀態(tài)機(jī)來(lái)描述UART核心控制
57、邏輯的方法,將其核心功能集成,從而使整個(gè)設(shè)計(jì)更加穩(wěn)定、可靠。基本的UART通信只需要兩條信號(hào)線就可以完成數(shù)據(jù)的相互通信。UART的功能模塊如圖3_2所示。</p><p><b> 波特發(fā)生器</b></p><p><b> Uart控制器</b></p><p><b> 接收模塊發(fā)送模塊</b
58、></p><p><b> 對(duì)象模塊</b></p><p> 圖3_2UART的功能模塊圖</p><p> 3.2 UART模塊</p><p> 在大規(guī)模電路的設(shè)計(jì)中,廣泛采用層次化,結(jié)構(gòu)化的設(shè)計(jì)方法。它將一個(gè)完整的硬件設(shè)計(jì)任務(wù)從系統(tǒng)級(jí)開始,劃分為若干個(gè)可操作的模塊,編制出相應(yīng)的模型并進(jìn)行仿真驗(yàn)證,
59、最后在系統(tǒng)級(jí)上進(jìn)行組合。這樣在提高設(shè)計(jì)效率的同時(shí)又提高了設(shè)計(jì)質(zhì)量,是目前復(fù)雜數(shù)字系統(tǒng)實(shí)現(xiàn)的主要手段,也是本文設(shè)計(jì)思想的基礎(chǔ)。</p><p> 其系統(tǒng)模塊可劃分為4個(gè)部分,如波特發(fā)生器,控制器,接收器,發(fā)送器,如圖3-3所示:</p><p><b> readsend</b></p><p> Clr3 clr4ks</p&
60、gt;<p> csData_in</p><p> Data_outclear</p><p> Read_enablesend_enable</p><p> counterscounters</p><p> resetCounters(control)</p><p><
61、;b> state</b></p><p> T1clk_enable</p><p><b> Clk_clear</b></p><p> Clk(波特發(fā)生器)</p><p><b> clk</b></p><p> 圖3-3uart結(jié)
62、構(gòu)圖</p><p> 3.2.1主要引腳功能介紹</p><p> Read:串行輸入send:串行輸出</p><p> Data_in:并行輸入data_out:并行輸出</p><p> Cs:通知cpu接收數(shù)據(jù)位ks:通知cpu發(fā)送準(zhǔn)備位</p><p> Reset:重啟
63、輸入state:uart狀態(tài)輸入</p><p> Clk:48M時(shí)鐘輸入</p><p> 3.2.2UART主體程序</p><p> module uart(read,send,cs,ks,reset,state,clk,dat_in,dat_out);</p><p> input read,clk,reset,st
64、ate;</p><p> //read為串行輸入,clk為時(shí)鐘輸入48MHZ,reset為重啟鍵</p><p> input[7:0] dat_in;//并行數(shù)據(jù)輸入</p><p> output send,cs,ks;</p><p> //send為串行輸出,cs為通知cpu接收數(shù)據(jù)位,ks為發(fā)送準(zhǔn)備位</p>
65、<p> output[7:0] dat_out;//并行數(shù)據(jù)輸出</p><p> wire clear,clk_enable,read_enable,clear3,send_enable,clear4,t1;</p><p> wire[7:0] counters,dat_in;</p><p> read u1 (dat_out,cs,re
66、ad,reset,clk_enable,clk,</p><p> read_enable,clear3,counters);//接收數(shù)據(jù)module</p><p> send u2 (dat_in,ks,send,reset,clk_enable,clk,</p><p> send_enable,clear4,counters);//發(fā)送數(shù)據(jù)module
67、</p><p> clk u3 (clk,t1,clk_enable); //時(shí)鐘計(jì)數(shù)器模塊</p><p> counters u4(read_enable,send_enable,clk,state,t1,read,counters,reset,clear);</p><p> check u5 (state,clear3,clear4,clear,cl
68、k_enable3,</p><p> clk_enable4,clk_enable);</p><p><b> endmodule</b></p><p> /////////////////////////////////////////////////////////////////////////////////////////
69、//////////////////////</p><p> module read(dat_out,cs,read,reset,clk_enable3,</p><p> clk,read_enable,clear3,counters);//接收數(shù)據(jù)module</p><p> input read_enable;</p><p>
70、; input read,reset,clk;</p><p> //read為串行輸入,read_control為時(shí)鐘控制,reset為重啟鍵</p><p> input[7:0] counters;</p><p> output cs,clear3,clk_enable3;//cs為通知cpu讀取數(shù)據(jù)位</p><p> o
71、utput[7:0] dat_out;</p><p><b> endmodule</b></p><p> ///////////////////////////////////////////////////////////////////////////////////////////////////////////////</p><
72、p> module send(dat_in,ks,send,reset,clk_enable4,clk,</p><p> send_enable,clear4,counters);//發(fā)送數(shù)據(jù)module</p><p> input[7:0] dat_in,counters;</p><p> input reset,clk,send_enabl
73、e;</p><p> output send,clk_enable4,clear4,ks;//ks為通知cpu發(fā)送準(zhǔn)備位</p><p><b> endmodule</b></p><p> ////////////////////////////////////////////////////////////////////////
74、///////////////////////////////////////</p><p> module counters(read_enable,send_enable,clk,</p><p> state,t1,read,counters,reset,clear);//控制器module</p><p> input clk,state,t1,re
75、ad,reset,clear;//state為uart狀態(tài)輸入,</p><p> //clear為程序計(jì)數(shù)寄存器清零控制位</p><p> output[7:0] counters;</p><p> output read_enable,send_enable;</p><p><b> endmodule</b
76、></p><p> //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////</p><p> module clk(clk,t1,clk_enable);//時(shí)鐘計(jì)數(shù)器模塊</p>
77、;<p> input clk,clk_enable;</p><p> output t1;</p><p><b> endmodule</b></p><p> //////////////////////////////////////////////////////////////////////////////
78、/////////////////////////////////////////</p><p> module check(state,clear3,clear4,clear,clk_enable3,</p><p> clk_enable4,clk_enable);//clear選擇模塊</p><p> input state,clear3,clear
79、4,clk_enable3,clk_enable4;</p><p> output clear,clk_enable;</p><p> assign clear=state?clear4:clear3;</p><p> assign clk_enable==state?clk_enable4:clk_enable3;</p><p&g
80、t;<b> endmodule</b></p><p> ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////</p><p> 3.3UART發(fā)送模塊</p>
81、<p> 3.3.1UART的數(shù)據(jù)發(fā)送服務(wù)</p><p> 發(fā)送器實(shí)現(xiàn)的功能是將輸入的8位并行數(shù)據(jù)變?yōu)榇袛?shù)據(jù),同時(shí)在數(shù)據(jù)頭部加起始位,在數(shù)據(jù)位尾部加奇偶校驗(yàn)位和停止位。數(shù)據(jù)發(fā)送服務(wù)如表3.1</p><p><b> 表3.1數(shù)據(jù)發(fā)送</b></p><p> 其基 本 特 點(diǎn)是:</p><p>
82、 ?、?在 信 號(hào)線上共有兩種狀態(tài),可分別用邏輯1和邏輯。來(lái)區(qū)分。在發(fā)送器空閑時(shí),數(shù)據(jù)線應(yīng)該保持在邏輯高電平狀態(tài)。</p><p> ?、诎l(fā)送 起 始 位:該位是一個(gè)邏輯0,總是加在每一幀的頭部,提示接受器數(shù)據(jù)傳輸即將開始,在接收數(shù)據(jù)位過(guò)程中又被分離出去,占據(jù)一個(gè)數(shù)據(jù)位的時(shí)間。</p><p> ?、郯l(fā)送 數(shù) 據(jù) 位:在起始位之后就是數(shù)據(jù)位,一般為8位一個(gè)字節(jié)的數(shù)據(jù),低位在前,高位在后。如
83、字母C在ASCII表中是十進(jìn)制67,二進(jìn)制01000011,那么傳輸?shù)膶⑹?10000100。并在數(shù)據(jù)發(fā)送過(guò)程當(dāng)中,進(jìn)行數(shù)據(jù)位奇偶校驗(yàn)。</p><p> ?、?發(fā)送校 驗(yàn) 位:該位一般用來(lái)判斷接收的數(shù)據(jù)位有無(wú)錯(cuò)誤,常用的校驗(yàn)方法是奇偶校驗(yàn)法。將3過(guò)程當(dāng)中奇偶校驗(yàn)的結(jié)果輸入到數(shù)據(jù)線,并占一個(gè)數(shù)據(jù)位時(shí)鐘。</p><p> ⑤ 停止位 :停止位總在每一幀的末尾,為邏輯1,用于標(biāo)志一個(gè)字符傳
84、送的結(jié)束,占據(jù)一個(gè)數(shù)據(jù)位的時(shí)間。</p><p> ?、?幀:從起始位到停止位之間的一組數(shù)據(jù)稱為一幀。</p><p> 3.3.2UART的數(shù)據(jù)發(fā)送操作</p><p><b> 如圖3-4</b></p><p> 拉低電平空閑檢測(cè)</p><p><b> Cpu發(fā)送位
85、檢測(cè)</b></p><p><b> 自檢測(cè)</b></p><p> 接cpu傳入數(shù)據(jù)拉高電平</p><p> 發(fā)送等待數(shù)據(jù)發(fā)送和奇偶校驗(yàn)奇偶結(jié)果發(fā)送</p><p> 圖3-4數(shù)據(jù)發(fā)送操作</p><p> 解釋:采用9600波特率發(fā)送<
86、;/p><p> 從cpu傳入數(shù)據(jù):是指將data_in端口的數(shù)據(jù)存入寄存器中</p><p> Cpu發(fā)送為檢測(cè):是指將ks寄存器置位,即數(shù)據(jù)發(fā)送完畢</p><p> 3.3.3UART的數(shù)據(jù)發(fā)送模塊程序</p><p> module send(dat_in,send,reset,clk_enable4,clk,</p>
87、<p> send_enable,clear4,counters);//發(fā)送數(shù)據(jù)module</p><p> input[7:0] dat_in,counters;</p><p> input reset,clk,send_enable;</p><p> output send,clk_enable4,clear4;</p>
88、<p> wire clear;</p><p> wire[7:0] dat_s;</p><p> reg send,parity_result;</p><p> reg clk_enable,clear1,clear4;</p><p> reg[7:0] date_s;</p><p>
89、 /////////////////////////////////////////////////////////////////////////////////////////////////////////</p><p> always@(posedge clk)</p><p><b> begin</b></p><p>
90、if(send_enable & !reset)//當(dāng)send_enable為高電平時(shí)為發(fā)送操作狀態(tài)</p><p><b> begin</b></p><p> clk_enable4<=1;</p><p> clear4<=clear1;</p><p><b> end&l
91、t;/b></p><p><b> else</b></p><p><b> begin</b></p><p> clear4<=1;</p><p><b> end</b></p><p><b> end<
92、;/b></p><p> ////////////////////////////////////////////////////////////////////////////////////////////////////////////</p><p> always@(posedge clk)</p><p> if(send_enable &
93、amp; !reset)</p><p><b> begin</b></p><p> if(counters==8'b00000001)//0</p><p><b> begin</b></p><p><b> send<=0;</b></p
94、><p> date_s<=dat_in;</p><p> parity_result<=1;</p><p><b> end</b></p><p> else if(counters==8'b00010000)//1</p><p><b> begin
95、</b></p><p> send<=date_s[0];</p><p> parity_result<=parity_result + date_s[0];</p><p><b> end</b></p><p> else if(counters==8'b00100000
96、)//2</p><p><b> begin</b></p><p> send<=date_s[1];</p><p> parity_result<=parity_result + date_s[0];</p><p><b> end</b></p><
97、;p> else if(counters==8'b00110000)//3</p><p><b> begin</b></p><p> send<=date_s[2];</p><p> parity_result<=parity_result + date_s[0];</p><p&g
98、t;<b> end</b></p><p> else if(counters==8'b01000000)//4</p><p><b> begin</b></p><p> send<=date_s[3];</p><p> parity_result<=pari
99、ty_result + date_s[0];</p><p><b> end</b></p><p> else if(counters==8'b01010000)//5</p><p><b> begin</b></p><p> send<=date_s[4];<
100、/p><p> parity_result<=parity_result + date_s[0];</p><p><b> end</b></p><p> else if(counters==8'b01100000)//6</p><p><b> begin</b></
101、p><p> send<=date_s[5];</p><p> parity_result<=parity_result + date_s[0];</p><p><b> end</b></p><p> else if(counters==8'b01110000)//7</p>
102、<p><b> begin</b></p><p> send<=date_s[6];</p><p> parity_result<=parity_result + date_s[0];</p><p><b> end</b></p><p> else if
103、(counters==8'b10000000)//8</p><p><b> begin</b></p><p> send<=date_s[7];</p><p> parity_result<=parity_result + date_s[0];</p><p><b> en
104、d</b></p><p> else if(counters==8'b10010000)//9發(fā)送奇偶校驗(yàn)結(jié)果</p><p><b> begin</b></p><p> send=parity_result;</p><p><b> end</b></p&
105、gt;<p> else if(counters==8'b10100000)//0發(fā)送高電平</p><p><b> begin</b></p><p><b> send<=1;</b></p><p><b> end</b></p><p
106、> else if(counters==8'b10101111)//0</p><p><b> begin</b></p><p> clear1<=1;</p><p><b> end</b></p><p> else if(counters==8'b
107、00000000)</p><p><b> begin</b></p><p><b> send<=1;</b></p><p><b> end</b></p><p> else clear1<=0;</p><p><
108、b> End</b></p><p><b> else</b></p><p><b> send<=1;</b></p><p> /////////////////////////////////////////////////////////////////</p>
109、<p><b> endmodul</b></p><p> 3.3.4UART的數(shù)據(jù)發(fā)送模塊程序仿真圖</p><p><b> 當(dāng)reset為零時(shí)</b></p><p> 圖3-5reset為零時(shí)仿真圖</p><p> 如圖為UART的數(shù)據(jù)發(fā)送模塊的功能仿真圖,為方便觀察
110、,其中的時(shí)鐘是直接給出來(lái)的,根據(jù)圖中的數(shù)據(jù)判讀,其功能為正確,UART的數(shù)據(jù)發(fā)送模塊編譯成功。</p><p> 當(dāng)計(jì)時(shí)器為140ns時(shí),為數(shù)據(jù)接收</p><p> 當(dāng)計(jì)時(shí)器為357ns時(shí),為數(shù)據(jù)發(fā)送</p><p> 當(dāng)計(jì)時(shí)器為705ns時(shí),為奇偶校驗(yàn)結(jié)果發(fā)送</p><p> 當(dāng)計(jì)時(shí)器為825ns時(shí),發(fā)送高電平</p>
111、;<p><b> 當(dāng)reset為1時(shí)</b></p><p><b> 如圖3-6</b></p><p> 圖3-6reset為1時(shí)仿真圖</p><p> 3.4UART接收模塊</p><p> 3.4.1UART數(shù)據(jù)接收服務(wù)</p><p>
112、; 串行 數(shù) 據(jù) 幀和接收時(shí)鐘是異步的,由邏輯1跳變?yōu)檫壿?可視為一個(gè)數(shù)據(jù)幀的開始,所以接收器首先要判斷起始位。如表3.2</p><p> 表3.2uart的數(shù)據(jù)接收服務(wù)</p><p> 其基 本 特 點(diǎn)是:</p><p> UART 接收狀態(tài) 一 共 有 4個(gè):state0(檢測(cè)起始位),stat e1( 對(duì)數(shù)據(jù)位進(jìn)行采樣,并串/并轉(zhuǎn)換),state
113、2(奇偶校驗(yàn) 分析),state3(接收數(shù)據(jù)正確與否檢測(cè))。</p><p> ① 起始位判讀:當(dāng)UART接收器復(fù)位以后,接收器將處 于這一狀態(tài)。在該狀態(tài),控制器一直等待read電平的跳 變,即從邏輯1變?yōu)檫壿?,也就是等待起始位的到來(lái) 。一旦檢測(cè)到起始位,就對(duì)采樣時(shí)鐘elk一 rev 上跳沿計(jì) 數(shù),當(dāng)計(jì)數(shù)為8時(shí),也就是確保在起始位的中間點(diǎn) ,然后轉(zhuǎn)到state1 狀態(tài)。</p><p>
114、; ② 數(shù)據(jù)接收 :該狀態(tài)下,每間隔16位倍頻采樣一位 串行數(shù)據(jù),接收8位異步數(shù)據(jù)并進(jìn)行串/并轉(zhuǎn)換。即對(duì) clk一 rev 上跳沿計(jì)數(shù),當(dāng)為16時(shí),就對(duì)數(shù)據(jù)采樣,這樣 保證了數(shù)據(jù)位是在中點(diǎn)處被采樣的,同時(shí)串/并轉(zhuǎn)換,當(dāng)檢測(cè)到已收到8個(gè)數(shù)據(jù)后以后,便進(jìn)入了state2狀態(tài)。</p><p> ?、?奇偶校驗(yàn) :該狀態(tài)實(shí)現(xiàn)的功能是奇偶校驗(yàn)。本文采 用的是偶校驗(yàn)。校驗(yàn)結(jié)束以后,轉(zhuǎn)到state3狀態(tài)。</p>
115、;<p> ?、?數(shù)據(jù)幀判讀 :該狀態(tài)是用來(lái)幀校驗(yàn)的,即在校驗(yàn)位 以后,檢測(cè)停止位是否為邏輯高電平</p><p> 3.4.2UART數(shù)據(jù)接收操作</p><p> 圖3-7UART數(shù)據(jù)接收操作</p><p> 起始位檢測(cè)空閑檢測(cè)</p><p><b> Cpu接收位檢測(cè)</b></p
116、><p><b> 檢測(cè)</b></p><p> 毛刺檢測(cè)數(shù)據(jù)幀檢測(cè)</p><p> 接收等待數(shù)據(jù)位讀取和奇偶校驗(yàn)奇偶結(jié)果比較</p><p> 圖3-7UART數(shù)據(jù)接收操作</p><p> 解釋:數(shù)據(jù)接收速度9600波特率,以16倍頻接收</p><p>
117、; cpu接收位檢測(cè):當(dāng)奇偶結(jié)果比較和數(shù)據(jù)幀檢測(cè)都正確時(shí),cpu檢測(cè)接收位cs置位</p><p> 3.4.3UART的數(shù)據(jù)接收模塊程序</p><p> module read(dat_out,cs,read,reset,clk_enable3,clk,read_enable,clear3,counters);</p><p> //接收數(shù)據(jù)module
118、</p><p> input read_enable;</p><p> input read,reset,clk;//read為串行輸入,read_control為時(shí)鐘控制,reset為重啟鍵</p><p> input[7:0] counters;</p><p> output cs,clear3,clk_enable3;/
119、/cs為通知cpu讀取數(shù)據(jù)位</p><p> output[7:0] dat_out;</p><p> wire clear3;</p><p> reg cs,cs1,clk_enable3;</p><p> reg[7:0] data_out;//移位寄存器</p><p>
120、reg parity_check_result,parity_result,clear3,clear1;/////////////////////////////////////////////////////////////////////////</p><p> always@(posedge clk)</p><p><b> begin</b><
121、/p><p> if(read_enable)//當(dāng)read_enable為高電平時(shí)為發(fā)送操作狀態(tài)</p><p><b> begin</b></p><p> clk_enable3<=1;</p><p> clear3<=clear1;</p><p><b>
122、 end</b></p><p><b> else</b></p><p><b> begin</b></p><p> clear3<=1;</p><p><b> end</b></p><p><b>
123、 end</b></p><p> //////////////////////////////////////////////////////////////////////////////</p><p> always@(negedge counters[0])///接收操作</p><p> if(read_enable & !r
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)論文----基于fpga的uart設(shè)計(jì)(含外文翻譯)
- 畢業(yè)論文--基于fpga的uart設(shè)計(jì)(含外文翻譯)
- 畢業(yè)論文-基于fpga的uart控制器設(shè)計(jì)【精校排版】
- 基于fpga的uart設(shè)計(jì)
- 基于fpga的uart模塊設(shè)計(jì)
- 基于FPGA的UART控制器設(shè)計(jì)論文初稿.doc
- 基于fpga的uart控制器設(shè)計(jì)
- 基于FPGA的UART控制器設(shè)計(jì)論文 二稿.doc
- 基于fpga數(shù)字時(shí)鐘設(shè)計(jì)-畢業(yè)論文
- 基于FPGA的UART接口設(shè)計(jì)與實(shí)現(xiàn).pdf
- 畢業(yè)論文--基于fpga的學(xué)校打鈴器設(shè)計(jì)
- 基于fpga的回波抵消器設(shè)計(jì)【畢業(yè)論文】
- 畢業(yè)論文---基于fpga的ddc的設(shè)計(jì)與實(shí)現(xiàn)
- 基于FPGA的UART電路的設(shè)計(jì)與應(yīng)用.pdf
- 基于fpga的ddc的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文
- fpga—uart實(shí)驗(yàn)
- 基于FPGA的UART控制器設(shè)計(jì)定稿.doc
- 畢業(yè)論文--基于fpga的串口通信電路設(shè)計(jì)
- 基于fpga的紅外遙控器設(shè)計(jì)【畢業(yè)論文】
- 基于fpga的數(shù)字鎖相環(huán)設(shè)計(jì)【畢業(yè)論文】
評(píng)論
0/150
提交評(píng)論