現(xiàn)代數(shù)字系統(tǒng)設(shè)計(jì)理論與技術(shù) -修改_第1頁
現(xiàn)代數(shù)字系統(tǒng)設(shè)計(jì)理論與技術(shù) -修改_第2頁
現(xiàn)代數(shù)字系統(tǒng)設(shè)計(jì)理論與技術(shù) -修改_第3頁
現(xiàn)代數(shù)字系統(tǒng)設(shè)計(jì)理論與技術(shù) -修改_第4頁
現(xiàn)代數(shù)字系統(tǒng)設(shè)計(jì)理論與技術(shù) -修改_第5頁
已閱讀5頁,還剩144頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1現(xiàn)代數(shù)字系統(tǒng)設(shè)計(jì)理論與技術(shù)(EDA技術(shù)理論與應(yīng)用)電子設(shè)計(jì)自動(dòng)化技術(shù)研究所

王祖強(qiáng)電話箱:wzq@辦公室:中心校區(qū)信息樓3182課程背景

1.EDA技術(shù)的重要性2.產(chǎn)業(yè)概況電路設(shè)計(jì):

模擬系統(tǒng)設(shè)計(jì)數(shù)字系統(tǒng)設(shè)計(jì)

傳統(tǒng)的數(shù)字電路設(shè)計(jì)方法基于微處理器的設(shè)計(jì)方法

基于EDA技術(shù)的設(shè)計(jì)方法混合系統(tǒng)設(shè)計(jì)3課程學(xué)習(xí)主要內(nèi)容

1.現(xiàn)代數(shù)字系統(tǒng)設(shè)計(jì)方法2.SOPC技術(shù)3.器件、語言與EDA工具軟件器件:可編程邏輯器件(PLD)語言:VHDL和VerilogHDL工具軟件:PLD設(shè)計(jì)工具(1)數(shù)字系統(tǒng)設(shè)計(jì)概述(2)數(shù)字系統(tǒng)算法描述(3)數(shù)字系統(tǒng)設(shè)計(jì)步驟(4)仿真、綜合與下載(5)可測(cè)性設(shè)計(jì)(6)軟硬件協(xié)同設(shè)計(jì)技術(shù)參考書:現(xiàn)代數(shù)字系統(tǒng)設(shè)計(jì)

侯伯亨等西安電子科技大學(xué)出版社

(1)SOPC技術(shù)基本知識(shí)(包括niosii處理器結(jié)構(gòu)及軟件編程、avalon總線、外設(shè)及DE2平臺(tái)的應(yīng)用)

(2)SOPC技術(shù)應(yīng)用(包括SOPCBuilder、DSPBuilder的使用方法等)

(3)SOPC技術(shù)高級(jí)應(yīng)用(包括操作系統(tǒng)嵌入、協(xié)議棧嵌入、自定義指令等)參考書:SOPC技術(shù)與應(yīng)用江國(guó)強(qiáng)編著機(jī)械工業(yè)出版社5主要參考書籍

現(xiàn)代數(shù)字系統(tǒng)設(shè)計(jì)

侯伯亨等西安電子科技大學(xué)出版社SOPC技術(shù)與應(yīng)用江國(guó)強(qiáng)編著機(jī)械工業(yè)出版社FPGA現(xiàn)代數(shù)字系統(tǒng)設(shè)計(jì)馬建國(guó)等清華大學(xué)出版社數(shù)字集成電路——電路、系統(tǒng)與設(shè)計(jì)周潤(rùn)德等譯電子工業(yè)出版社5.數(shù)字集成系統(tǒng)的結(jié)構(gòu)化設(shè)計(jì)與高層次綜合王志華等清華大學(xué)出版社6.SoC設(shè)計(jì)方法與實(shí)現(xiàn)郭煒等電子工業(yè)出版社7.專用集成電路設(shè)計(jì)實(shí)用教程虞希清等浙江大學(xué)出版社6第1章數(shù)字系統(tǒng)設(shè)計(jì)概述1.1數(shù)字系統(tǒng)的基本概念

1.1.1什么是數(shù)字系統(tǒng)是對(duì)數(shù)字信息進(jìn)行存儲(chǔ)、傳輸和處理的系統(tǒng)1.1.2數(shù)字系統(tǒng)和模擬系統(tǒng)的比較

穩(wěn)定性精確性可靠性模塊化71.1.3數(shù)字系統(tǒng)的硬件實(shí)現(xiàn)1.微控制器實(shí)現(xiàn)

2.可編程邏輯器件實(shí)現(xiàn)

3.專用集成電路實(shí)現(xiàn)

1.1.4集成電路技術(shù)的發(fā)展數(shù)字系統(tǒng)實(shí)現(xiàn)從傳統(tǒng)的板上系統(tǒng)(System_on_Board)

→當(dāng)前的片上系統(tǒng)(System_on_a_Chip)

三次變革:

1.第一次變革(20世紀(jì)70年代):IC制造與封裝測(cè)試的分離;

2.

第二次變革(20世紀(jì)80年代):代加工(foundry)與IC設(shè)計(jì)的分離;

3.第三次變革(20世紀(jì)90年代):設(shè)計(jì)、制造、封裝、測(cè)試的四業(yè)分離。81.1.5數(shù)字系統(tǒng)與EDA技術(shù)行為級(jí)PLD開發(fā)模擬IC設(shè)計(jì)PCB設(shè)計(jì)版圖數(shù)字IC設(shè)計(jì)綜合和仿真混合IC設(shè)計(jì)邏輯級(jí)EDA設(shè)計(jì)技術(shù)、工具1.EDA技術(shù)的應(yīng)用91.1.5數(shù)字系統(tǒng)與EDA技術(shù)2.現(xiàn)代EDA技術(shù)的主要特點(diǎn)

●用HDL進(jìn)行系統(tǒng)描述●與工藝無關(guān),語言的標(biāo)準(zhǔn)化和描述能力●適合大規(guī)模系統(tǒng)設(shè)計(jì),可重用設(shè)計(jì)

●支持自上而下的設(shè)計(jì)方法、高層綜合和優(yōu)化

●并行工程(CE)設(shè)計(jì),設(shè)計(jì)周期短,設(shè)計(jì)效率高

●開放性和標(biāo)準(zhǔn)化

●多種多廠商EDA工具●標(biāo)準(zhǔn)的軟件平臺(tái)框架101.1.5數(shù)字系統(tǒng)與EDA技術(shù)3.SoC(SOPC)與IP核SoC:System-On-a-Chip在一個(gè)芯片上集成一個(gè)系統(tǒng)111.1.5數(shù)字系統(tǒng)與EDA技術(shù)◆IP:IntellectualProperty◆

類型類型:軟核軟核通常以可綜合的HDL提供,因此具有較高的靈活性,并與具體的實(shí)現(xiàn)工藝無關(guān)。其主要缺點(diǎn)是缺乏對(duì)時(shí)序、面積和功耗的預(yù)見性。由于軟核是以源代碼的形式提供,盡管源代碼可以采用加密方法,但其知識(shí)產(chǎn)權(quán)保護(hù)問題不容忽視。硬核IP硬核是基于半導(dǎo)體工藝的物理設(shè)計(jì),已有固定的拓?fù)洳季趾途唧w工藝,并已經(jīng)過工藝驗(yàn)證,具有可保證的性能。其提供給用戶的形式是電路物理結(jié)構(gòu)掩模版圖和全套工藝文件,是可以拿來就用的全套技術(shù)。

硬核缺乏靈活性、可移植性差但由于無須提供寄存器傳輸級(jí)(RTL)文件,易于實(shí)現(xiàn)IP保護(hù)固核介于軟核和硬核之間IP固核除了完成軟核所有的設(shè)計(jì)外,還完成了門級(jí)電路綜合和時(shí)序仿真等設(shè)計(jì)環(huán)節(jié)。一般以門級(jí)電路網(wǎng)表的形式提供給用戶。◆典型的IP核

MPU,DSP,Memory,Ethernet,USB,PCI,IEEE1394等等131.2數(shù)字系統(tǒng)設(shè)計(jì)方法1.2.1數(shù)字系統(tǒng)設(shè)計(jì)描述觀察、分析和處理一個(gè)復(fù)雜數(shù)字系統(tǒng)時(shí),通常采用分層的方法,實(shí)踐證明這是一種非常有效的方法,其原因是:●分層的方法反映了事物的內(nèi)部聯(lián)系:大化小、復(fù)雜變簡(jiǎn)單;●有助于控制復(fù)雜度:隱藏細(xì)節(jié),減小每次處理事物的數(shù)量;●設(shè)計(jì)模塊化:便于對(duì)系統(tǒng)進(jìn)行劃分,簡(jiǎn)化系統(tǒng)的實(shí)現(xiàn)和調(diào)試。1.分層描述的優(yōu)點(diǎn)14(1)描述域:數(shù)字系統(tǒng)設(shè)計(jì)信息的描述可在三個(gè)域進(jìn)行:行為域、結(jié)構(gòu)域、物理域。2.描述域和描述層次行為域:強(qiáng)調(diào)的是行為,它說明電路的功能,即電路的輸入一輸出的關(guān)系,但與該行為的實(shí)現(xiàn)無關(guān),也可以說如何實(shí)現(xiàn)在該域中被隱蔽起來了;結(jié)構(gòu)域:

描述組成電路的各部件及部件間的拓?fù)溥B接關(guān)系,即互連功能部件的層次關(guān)系;物理域:描述生產(chǎn)和制造物理實(shí)體所需要的信息(如幾何布局或拓?fù)浼s束等),即空間的物理布局和物理特性,沒有任何功能部件的概念。15(2)描述層次:描述層次一般可以從低至高分為五級(jí):電路級(jí)、邏輯級(jí)、寄存器傳輸級(jí)、算法級(jí)和系統(tǒng)級(jí),常用電子設(shè)計(jì)Y圖表示。實(shí)際應(yīng)用時(shí),可根據(jù)系統(tǒng)的復(fù)雜程度適當(dāng)舍取。電子設(shè)計(jì)Y圖16電路級(jí):其主要構(gòu)件是晶體管、電阻等。?該層的功能通常用微分方程或電流電壓關(guān)系方程來描述;?該層的結(jié)構(gòu)描述說明晶體管和電阻元件的符號(hào)定義及其拓?fù)溥B接關(guān)系;?該層的物理描述則說明由晶體管及物理連線幾何圖形構(gòu)成的掩膜版圖。17門級(jí):主要構(gòu)件是門、觸發(fā)器等。?該層的功能通常用布爾表達(dá)式和時(shí)序狀態(tài)方程來描述;?該層的結(jié)構(gòu)描述說明各種類型門單元和觸發(fā)器單元的符號(hào)定義及其拓?fù)溥B接關(guān)系;?該層的物理描述說明由門單元、觸發(fā)器和物理連線幾何布局。

EDA軟件可以在門級(jí)電路描述的基礎(chǔ)上,通過功能和時(shí)序仿真,利用布局布線工具實(shí)現(xiàn)版圖。18RTL級(jí)設(shè)計(jì):用RTL硬件描述語言描述電路,進(jìn)行RTL仿真,利用邏輯綜合工具將RTL級(jí)描述轉(zhuǎn)化為門級(jí)網(wǎng)表,再利用自動(dòng)布局布線工具來實(shí)現(xiàn)所需版圖。隨設(shè)計(jì)規(guī)模、復(fù)雜性的增加,門級(jí)設(shè)計(jì)方法已無法適應(yīng)。寄存器傳輸級(jí):主要構(gòu)件是算術(shù)/邏輯單元、寄存器等。?該層的功能通常用時(shí)序狀態(tài)圖、RTL語句和布爾表達(dá)式方程來描述;?該層的結(jié)構(gòu)描述說明算術(shù)/邏輯單元、寄存器等的符號(hào)定義及其結(jié)構(gòu)連接關(guān)系;?該層的物理描述說明算術(shù)/邏輯單元、寄存器、物理連線構(gòu)成幾何布局。19算法級(jí):主要構(gòu)件是由寄存器級(jí)單元構(gòu)成的乘法器、控制器等硬件功能模塊。?該層的功能通常用算法過程描述;?該層的結(jié)構(gòu)描述說明乘法器、控制器等硬件功能模塊的符號(hào)定義及其結(jié)構(gòu)連接關(guān)系;?該層的物理描述說明硬件功能模塊、物理連線構(gòu)成的幾何布局。20系統(tǒng)級(jí):主要構(gòu)件有CPU、存儲(chǔ)器、I/O接口?該層的功能描述就是指系統(tǒng)規(guī)格;?該層的結(jié)構(gòu)描述是指CPU、存儲(chǔ)器、I/O接口等的符號(hào)定義及其結(jié)構(gòu)連接關(guān)系;?該層的物理描述是由CPU、存儲(chǔ)器、I/O接口等硬件功能模塊構(gòu)成的電路版圖的物理劃分。21(3)行為域、結(jié)構(gòu)域和物理域之間的關(guān)系

綜合(Synthesis)與分析(Analysis):綜合是一個(gè)設(shè)計(jì)過程,是從行為域向結(jié)構(gòu)域的轉(zhuǎn)換過程;分析則是與綜合相反的過程。

抽象(Abstraction)與細(xì)化(Refinement)抽象是從物理域向行為域的轉(zhuǎn)換過程;細(xì)化是與抽象相反的過程。

生成(Generation)與提取(Extraction)生成是從結(jié)構(gòu)域向物理域的轉(zhuǎn)換過程;提取是與生成相反的過程。221.2.2數(shù)字系統(tǒng)常用的設(shè)計(jì)方法自底向上的設(shè)計(jì)方法自關(guān)鍵部件開始設(shè)計(jì)的方法系統(tǒng)信息流驅(qū)動(dòng)設(shè)計(jì)的方法自頂向下的設(shè)計(jì)方法23何謂頂?頂——系統(tǒng)的功能何謂底?底——最基本的元、器件,甚至是版圖自頂向下的設(shè)計(jì)方法器件級(jí)描述系統(tǒng)級(jí)描述系統(tǒng)設(shè)計(jì)功能級(jí)描述邏輯設(shè)計(jì)描述過程是一種將系統(tǒng)分成幾個(gè)不同級(jí)別,在不同級(jí)別中分別采用不同描述方法的設(shè)計(jì)。自頂向下設(shè)計(jì)的描述通常分為系統(tǒng)級(jí)描述、功能級(jí)描述和器件級(jí)描述三個(gè)階段。24器件級(jí)描述系統(tǒng)級(jí)描述系統(tǒng)設(shè)計(jì)功能級(jí)描述邏輯設(shè)計(jì)指對(duì)系統(tǒng)總的技術(shù)指標(biāo)的描述,這是最高一級(jí)的描述,由此導(dǎo)出的實(shí)現(xiàn)系統(tǒng)功能的方法也是系統(tǒng)功能的一種描述。實(shí)質(zhì)上就是邏輯框圖,它說明了系統(tǒng)經(jīng)分解后各功能模塊的組成和相互聯(lián)系。指詳細(xì)的邏輯電路圖,它詳細(xì)地給出了實(shí)際系統(tǒng)的單元電路及它們之間的連線。在邏輯設(shè)計(jì)階段中,這是最低級(jí)別的描述。2526自頂向下的設(shè)計(jì)方法的優(yōu)點(diǎn)?

盡量運(yùn)用概念(抽象)描述、分析設(shè)計(jì)對(duì)象,不過早地考慮具體的電路、元器件和工藝。

?

抓住主要矛盾,不糾纏在具體細(xì)節(jié)上。27自底向上的設(shè)計(jì)方法它是一種多層次的設(shè)計(jì)方法。這種方法從現(xiàn)成的數(shù)字器件或子系統(tǒng)開始,根據(jù)用戶要求,對(duì)現(xiàn)有的組件、較小系統(tǒng)或相似系統(tǒng)加以修改、擴(kuò)大和相互聯(lián)接,直到構(gòu)成用戶要求的新系統(tǒng)為止。設(shè)計(jì)過程設(shè)計(jì)驗(yàn)證修改設(shè)計(jì)再驗(yàn)證優(yōu)點(diǎn):設(shè)計(jì)者憑自己的智慧和經(jīng)驗(yàn)進(jìn)行設(shè)計(jì)和加以修改,可以充分利用已有設(shè)計(jì)成果,較快地設(shè)計(jì)出所要求的系統(tǒng),設(shè)計(jì)成本較低。缺點(diǎn):在進(jìn)行底層設(shè)計(jì)時(shí),缺乏對(duì)整個(gè)系統(tǒng)總體性能的把握。其系統(tǒng)結(jié)構(gòu)有時(shí)不是最佳的。隨著系統(tǒng)規(guī)模和復(fù)雜度的提高,其缺點(diǎn)越來越突出。2829自關(guān)鍵部件開始設(shè)計(jì)的方法當(dāng)一個(gè)設(shè)計(jì)者在設(shè)計(jì)的開始階段可以作出判斷:待設(shè)計(jì)系統(tǒng)中,必然要配置某個(gè)決定整個(gè)系統(tǒng)性能和結(jié)構(gòu)的關(guān)鍵或核心部件,這一部件的性能、價(jià)格將決定這種系統(tǒng)結(jié)構(gòu)是否可行。此時(shí),該設(shè)計(jì)可從這一關(guān)鍵或核心部件開始進(jìn)行設(shè)計(jì)。特點(diǎn):這種方法實(shí)際上是自頂向下和自底向上兩種方法的結(jié)合和變形。自頂向下地考慮系統(tǒng)可能采用的方案和總體結(jié)構(gòu),在關(guān)鍵部件設(shè)計(jì)完成之后,配以適當(dāng)?shù)妮o助電路和控制電路,從而實(shí)現(xiàn)整個(gè)系統(tǒng)。3031系統(tǒng)信息流驅(qū)動(dòng)設(shè)計(jì)的方法是根據(jù)數(shù)據(jù)處理單元的數(shù)據(jù)流或根據(jù)控制單元的控制流的狀況和流向進(jìn)行系統(tǒng)設(shè)計(jì)方法。數(shù)據(jù)處理單元數(shù)據(jù)流系統(tǒng)信息流控制單元控制流系統(tǒng)數(shù)據(jù)流驅(qū)動(dòng)設(shè)計(jì)系統(tǒng)控制流驅(qū)動(dòng)設(shè)計(jì)32系統(tǒng)數(shù)據(jù)流驅(qū)動(dòng)設(shè)計(jì)以數(shù)據(jù)的流程(即待處理數(shù)據(jù)所進(jìn)行的各種變換)為思路來推動(dòng)系統(tǒng)設(shè)計(jì)而進(jìn)行的設(shè)計(jì)方法。系統(tǒng)控制流驅(qū)動(dòng)設(shè)計(jì)以控制過程為系統(tǒng)設(shè)計(jì)的中心。即設(shè)計(jì)者由控制單元應(yīng)該實(shí)施的控制過程入手,確定系統(tǒng)控制流程的設(shè)計(jì)方法。33舉例1:試設(shè)計(jì)一個(gè)數(shù)據(jù)采集系統(tǒng):M1,M2,……,M8是8路模擬量;N1和N2是兩路8位數(shù)字量;OUT是系統(tǒng)的串行輸出端,它以0.1秒輸出一個(gè)記錄。每個(gè)記錄有Ai、N1和N2三個(gè)8位串行數(shù)字量組成,其中Ai與模擬量Mi對(duì)應(yīng)。每8個(gè)記錄依次輸出M1~M8一次??刂茊卧刂返刂房刂瓶刂颇M開關(guān)8選1M1M2M8…A/D(8位)MUXP/S(8位)MiAiN1N2D0~D78888OUT數(shù)據(jù)采集系統(tǒng)34舉例2:某學(xué)校有一臺(tái)備用交流發(fā)電機(jī)。該機(jī)在市電突然發(fā)生停電故障時(shí)應(yīng)立即啟動(dòng)并發(fā)電,以確保學(xué)校有關(guān)部門繼續(xù)供電。該發(fā)電機(jī)是以柴油為燃料的。按以上要求設(shè)計(jì)一個(gè)發(fā)電機(jī)控制系統(tǒng)。對(duì)發(fā)電機(jī)的控制過程是:在市電停電時(shí)自動(dòng)啟動(dòng),啟動(dòng)后2分鐘測(cè)量發(fā)電機(jī)的轉(zhuǎn)速,如果轉(zhuǎn)速未達(dá)到規(guī)定值則告警。反之,進(jìn)入正常發(fā)電階段,此時(shí)應(yīng)不斷測(cè)量轉(zhuǎn)速和輸出電壓,依次調(diào)整供油量,使發(fā)電機(jī)輸出的交流電壓和頻率均穩(wěn)定在某一定值上;如果轉(zhuǎn)速或輸出電壓發(fā)生異常,則告警,并在3分鐘內(nèi)停機(jī)。備用發(fā)電機(jī)的控制流程圖35備用發(fā)電機(jī)的控制流程圖市電停開始發(fā)出啟動(dòng)信號(hào)2分鐘到測(cè)量轉(zhuǎn)速合格供適當(dāng)油量轉(zhuǎn)速電壓合格告警3分鐘到停機(jī)告警yesnonoyesnoyesnoyesyesno36正向設(shè)計(jì)自上而下設(shè)計(jì)流程系統(tǒng)描述功能設(shè)計(jì)邏輯設(shè)計(jì)電路設(shè)計(jì)版圖設(shè)計(jì)芯片制造封裝測(cè)試芯片規(guī)劃:功能,性能,功耗,成本,尺寸,工藝行為特性:時(shí)序圖,狀態(tài)機(jī)和模塊連接圖邏輯結(jié)構(gòu):綜合和優(yōu)化設(shè)計(jì)結(jié)果晶體管級(jí):元件的電性能物理設(shè)計(jì):幾何表示流片:工藝線上加工已驗(yàn)證的版圖設(shè)計(jì)結(jié)果測(cè)試是否符合設(shè)計(jì)規(guī)劃37逆向設(shè)計(jì)輔助的設(shè)計(jì)方法設(shè)計(jì)流程已有芯片功能圖邏輯圖正向設(shè)計(jì)原理圖芯片版圖實(shí)現(xiàn)/改進(jìn)芯片38第2章數(shù)字系統(tǒng)的基本模型和結(jié)構(gòu)

2.1數(shù)字系統(tǒng)的基本模型在設(shè)計(jì)數(shù)字系統(tǒng)時(shí),一般采用數(shù)字系統(tǒng)的動(dòng)態(tài)模型和算法模型。數(shù)字系統(tǒng)的動(dòng)態(tài)模型是指在數(shù)字邏輯設(shè)計(jì)中,采用傳統(tǒng)的狀態(tài)轉(zhuǎn)換圖,狀態(tài)轉(zhuǎn)換表,狀態(tài)方程,輸出方程,時(shí)序圖,真值表,卡諾圖等描述工具的數(shù)字系統(tǒng)稱為動(dòng)態(tài)模型。1.數(shù)字系統(tǒng)的動(dòng)態(tài)模型392.數(shù)字系統(tǒng)的算法模型

數(shù)字系統(tǒng)的算法模型的基本思想是將系統(tǒng)實(shí)現(xiàn)的功能看做應(yīng)完成的一種運(yùn)算。算法模型通常有以下兩大特征:

(1)含有若干個(gè)子運(yùn)算:子運(yùn)算實(shí)現(xiàn)對(duì)處理數(shù)據(jù)或信息的傳輸、存貯和處理。

(2)具有相應(yīng)的控制序列:控制子運(yùn)算按一定的規(guī)律有序進(jìn)行。圖2-1數(shù)字系統(tǒng)結(jié)構(gòu)框圖存儲(chǔ)部件處理部件控制單元輸出部件輸入部件邏輯系統(tǒng)數(shù)據(jù)處理單元402.2數(shù)字系統(tǒng)的基本結(jié)構(gòu)前已述及,所謂數(shù)字系統(tǒng),指的是具有存儲(chǔ)、傳輸和處理數(shù)字信息功能的邏輯子系統(tǒng)的集合體。

數(shù)字系統(tǒng)的設(shè)計(jì),涉及機(jī)、光、電、化學(xué)、經(jīng)濟(jì)學(xué)等學(xué)科各類工程技術(shù)問題,但從本質(zhì)上看,其核心問題仍是邏輯設(shè)計(jì)問題。受控單元41數(shù)字系統(tǒng)基本結(jié)構(gòu)數(shù)據(jù)處理單元控制單元控制序列信號(hào)反饋應(yīng)答信號(hào)待處理輸入數(shù)據(jù)外部輸入控制信號(hào)處理后輸出數(shù)據(jù)輸出控制信號(hào)數(shù)據(jù)流控制流控制單元用來產(chǎn)生控制信號(hào)序列,以決定何時(shí)進(jìn)行何種數(shù)據(jù)運(yùn)算。工作過程發(fā)出控制信號(hào)->數(shù)據(jù)處理->處理后輸出數(shù)據(jù)和反饋信號(hào)->發(fā)出新的控制信號(hào)->……數(shù)據(jù)處理單元組合邏輯電路:完成數(shù)據(jù)運(yùn)算數(shù)據(jù)存儲(chǔ)器:保存運(yùn)算數(shù)據(jù)和運(yùn)算結(jié)果43第3章數(shù)字系統(tǒng)的算法描述

對(duì)數(shù)字系統(tǒng)進(jìn)行算法描述時(shí),常用的算法包括:算法流程圖、算法狀態(tài)機(jī)圖(ASM圖)和助記狀態(tài)圖(MDS圖)。高級(jí)語言編寫程序:

畫出程序流程圖(框圖)程序編寫

這里的程序流程圖(框圖)實(shí)際上就是一種算法描述的方法443.1算法流程圖

算法流程圖是描述數(shù)字系統(tǒng)非常有效的工具。3.1.1算法流程圖的符號(hào)1.啟動(dòng)框與結(jié)束框啟動(dòng)結(jié)束452.工作框(A)

CTR0D3D2D1D0CrQ3Q2Q1Q0CPCTR(B)

D3D2D1D0LDQ3Q2Q1Q0CPCTR

0000(C)工作塊與硬件實(shí)現(xiàn)的對(duì)應(yīng)關(guān)系工作框●工作框的表示方法●和硬件電路的對(duì)應(yīng)關(guān)系46工作塊與硬件實(shí)現(xiàn)的對(duì)應(yīng)關(guān)系RbBRmM(A)CPBMDDQQRbRm(B)47CNT=8?CNT0A1.A0CNTCNT+1FD0FD1FD001001NOYES3.判斷框●判斷框的表示方法●框內(nèi)給出判斷條件●2個(gè)以上分支的表示48R0CNT=4?NOYES條件輸出框BD4.條件輸出框●條件輸出框的表示符號(hào)●一定與判斷框的一個(gè)分支相連●可以描述硬件操作的并發(fā)性,即與判斷結(jié)果同時(shí)發(fā)生49設(shè)計(jì)一個(gè)帶極性的8位二進(jìn)制數(shù)的補(bǔ)碼變換器,試畫出該變換器的邏輯框圖和算法流程圖。算法一:本例采用移位變換型的算法其規(guī)則為:正數(shù)的補(bǔ)碼等于原碼;負(fù)數(shù)的補(bǔ)碼其極性位不變,數(shù)值位求反加1。補(bǔ)碼變換器的示意圖如下圖所示3.1.2算法流程圖舉例doneA補(bǔ)碼變換器startB88圖中A=asa6a5…a0

B=bsb6b5…b050算法描述:利用移位寄存器按如下步驟將A變換為補(bǔ)碼Bas=0,直接輸出as=1,對(duì)ai依次移位(低位開始)進(jìn)行判斷,從第一個(gè)1后的下一位求反as不求反51開始as=1REG右移,cnt+1cnt=8SREG右移,位求反,cnt+1SR=1等待,done=1yesnoST=1noyesnoyesnonoyesyesREGA,清cntcnt=7cnt=7noyes算法流程圖52邏輯框圖作業(yè):試使用其他算法描述該題53

ASM圖(AlgorithmicStateMachineChart)是硬件算法的符號(hào)表示方法,可以方便地表示數(shù)字系統(tǒng)的時(shí)序操作。ASM圖不同于算法流程圖:算法流程圖是一種事件驅(qū)動(dòng)的流程圖;而ASM圖是一種時(shí)鐘驅(qū)動(dòng)的流程圖。算法流程圖描述的是系統(tǒng)的操作;而ASM圖是用來描述控制器的控制過程(即控制器的狀態(tài)轉(zhuǎn)換、轉(zhuǎn)換條件以及控制器的輸出等),它強(qiáng)調(diào)的是為執(zhí)行操作應(yīng)該產(chǎn)生的對(duì)數(shù)據(jù)處理單元的控制信號(hào)或系統(tǒng)外部的輸出。3.2算法狀態(tài)機(jī)圖(ASM圖)3.2.1算法流程圖和算法狀態(tài)機(jī)圖的區(qū)別

54某數(shù)字系統(tǒng)的部分算法流程圖及ASM圖C1=1x=n?C2=101S000S101(b)ASM圖x←x+1x=n?RD←

D01(a)算法流程圖553.2.2ASM圖的表示符號(hào)

操作內(nèi)容狀態(tài)名稱狀態(tài)編碼(a)狀態(tài)框判斷條件判斷條件(b)判斷框輸出內(nèi)容(c)條件輸出框ASM圖的基本圖形符號(hào)ASM圖由三個(gè)基本圖形符號(hào)組成:狀態(tài)框、判斷框和條件輸出框,如下圖所示。

1.ASM圖的基本圖形符號(hào)56操作內(nèi)容狀態(tài)名稱狀態(tài)編碼(a)狀態(tài)框

ASM圖狀態(tài)框

是一個(gè)具有進(jìn)口和出口的矩形框,用來代表系統(tǒng)的一個(gè)狀態(tài),如圖(a)所示。狀態(tài)框內(nèi)定義在此狀態(tài)實(shí)現(xiàn)的寄存器傳輸操作和輸出,框外的左上方標(biāo)明狀態(tài)名稱,右上方可以寫上狀態(tài)的編碼。57(b)

判斷框

ASM圖判斷框又稱為條件分支框,用單入口雙出口的菱形框或單入口多出口的多邊形表示,如上圖所示。框中內(nèi)容是被檢驗(yàn)的判別變量和判別條件。其中的判別變量可以是狀態(tài)變量,也可以是外輸入變量;變量的個(gè)數(shù)可以是一個(gè),也可以是多個(gè);變量的作用可以同等重要,也可以有優(yōu)先級(jí)順序。判斷條件判斷條件58(c)條件輸出框

ASM圖條件輸出框用平行四邊形表示,它的入口必須來自判斷框的某一分支,如上圖所示。條件輸出框內(nèi)所規(guī)定的操作必須在與之相連的判斷框內(nèi)的判斷條件滿足時(shí)才進(jìn)行。注意:條件輸出框不是控制器的一個(gè)狀態(tài)。輸出內(nèi)容來自判斷框的一個(gè)分支59一個(gè)ASM塊表示一個(gè)時(shí)鐘周期內(nèi)的系統(tǒng)狀態(tài)。一個(gè)ASM塊必定包含一個(gè)狀態(tài)框且只允許包含一個(gè)狀態(tài)框,與此狀態(tài)框相連的若干個(gè)判斷框和條件輸出框也屬于該ASM塊,如圖(a)虛線框所示。僅含有一個(gè)狀態(tài)框的ASM塊是一個(gè)簡(jiǎn)單塊,如圖(b)所示。

一個(gè)ASM圖可以由若干個(gè)ASM塊組成ASM塊cn←0(b)(a)xycn←0………cn←cn+1S0S1S2S300011011S0002.ASM塊◆ASM圖具有時(shí)間序列。

ASM圖狀態(tài)由現(xiàn)態(tài)轉(zhuǎn)到次態(tài)的這種狀態(tài)改變是在時(shí)鐘信號(hào)的控制下實(shí)現(xiàn)的;ASM圖中的每一個(gè)ASM塊都在狀態(tài)框和條件輸出框內(nèi)列出了一個(gè)時(shí)鐘脈沖周期應(yīng)實(shí)現(xiàn)的操作,這些操作均在數(shù)據(jù)處理器中完成,狀態(tài)的變化則在控制器中實(shí)現(xiàn)。61◆由算法流程圖到ASM圖:

算法流程圖規(guī)定了為完成某項(xiàng)設(shè)計(jì)任務(wù)系統(tǒng)應(yīng)進(jìn)行的判斷和操作,以及判斷和操作的順序;ASM圖規(guī)定了為完成這些判斷和操作順序所需的時(shí)間和控制器應(yīng)輸出的信號(hào)。由算法流程圖導(dǎo)出ASM圖的關(guān)鍵是安排狀態(tài)?!舭才艩顟B(tài)注意的問題:

①在算法的起點(diǎn)安排一個(gè)狀態(tài);

為不能同時(shí)實(shí)現(xiàn)的寄存器操作分配不同的狀態(tài);

③在受寄存器操作影響的判斷處安排一個(gè)狀態(tài)。3.2.3ASM圖的建立算法流程圖->數(shù)據(jù)處理單元控制序列->ASM圖62◆舉例:設(shè)計(jì)一個(gè)串行數(shù)據(jù)接收器,接收RS232標(biāo)準(zhǔn)編碼的串行

數(shù)據(jù),并輸出接收到的數(shù)據(jù)。

解:RS232數(shù)據(jù)編碼的格式是:

起始位(1bit)+數(shù)據(jù)位(8bit)+奇偶校驗(yàn)位(1bit)+停止位(1bit)其中,起始位為低有效。令P為奇偶誤差標(biāo)志信號(hào),高有效(即P=1表示檢測(cè)到奇偶誤差);

M為輸出標(biāo)志信號(hào),高有效(即M=1表示輸出信號(hào)有效);R為接收數(shù)據(jù)寄存器;

COUNT是記錄接收到幾位數(shù)據(jù)的計(jì)數(shù)器。串行數(shù)據(jù)接收器的算法流程圖如圖(a)所示,與其對(duì)應(yīng)的ASM圖如圖(b)所示。63開始起始信號(hào)出現(xiàn)收到8位信息存在奇偶誤差COUNT←0,M←0,P←0R←SR(R)COUNT←COUNT+10M←1,P←1M←111100(a)串行數(shù)據(jù)接收器算法流程圖C1C2C3011100S00M←1,P←1R←SR(R)COUNT←COUNT+1M←1COUNT←0,M←0,P←0S11(b)串行數(shù)據(jù)接收器的ASM圖ASM圖中的C1、C2、C3分別與算法流程圖條件框中的條件相對(duì)應(yīng);S0狀態(tài)框表示在算法的起點(diǎn)安排了一個(gè)狀態(tài);S1狀態(tài)框表示清零后的操作和比較操作不在一個(gè)狀態(tài)完成。P為奇偶誤差標(biāo)志信號(hào),高有效;M為輸出標(biāo)志信號(hào),高有效;R為接收數(shù)據(jù)寄存器;COUNT是記錄接收到幾位數(shù)據(jù)的計(jì)數(shù)器。64

①適用于同步電路;②

狀態(tài)框之間的時(shí)間約定;③ASM圖是時(shí)間驅(qū)動(dòng)的,一個(gè)ASM塊中的各個(gè)操作和從一種狀態(tài)到另一種狀態(tài)的轉(zhuǎn)換均發(fā)生在時(shí)鐘的同一個(gè)邊沿。④異步輸入信號(hào)的處理:對(duì)異步輸入信號(hào)需要進(jìn)行同步化處理。異步信號(hào)的同步化電路如圖所示(圖中將同步化時(shí)間確定在時(shí)鐘上升沿)。注意:算法流程圖與ASM圖在時(shí)間概念上的區(qū)別

3.2.3使用ASM圖應(yīng)注意的問題同步化電路&&同步化輸出qDcpQ異步輸入x系統(tǒng)時(shí)鐘yx65Si表示狀態(tài)Si表示當(dāng)系統(tǒng)時(shí)鐘的有效沿到來時(shí),狀態(tài)從Si無條件地轉(zhuǎn)換到Sj。SiSj表示在滿足條件T的情況下,且系統(tǒng)時(shí)鐘的有效沿到來時(shí),狀態(tài)從Si轉(zhuǎn)換到Sj;轉(zhuǎn)換條件T可以是一個(gè)變量,也可以是一個(gè)復(fù)雜的布爾代數(shù)表達(dá)式。TSiSj3.3.1MDS圖符號(hào)3.3助記狀態(tài)圖(MDS圖)助記狀態(tài)圖即備有記憶文擋的狀態(tài)圖(MDS圖)

(MemonicDocumentedStateDiagrams)。它是1980年由美國(guó)人William.Fletcher提出的一種系統(tǒng)設(shè)計(jì)方法。67表示進(jìn)入狀態(tài)Si時(shí),輸出信號(hào)Z變?yōu)橛行?;若Z的有效電平已經(jīng)確定,則可在Z旁邊注明。例如,Z為高有效,則可用Z=H↑來代替Z↑。Z↑Si表示進(jìn)入狀態(tài)Si時(shí),輸出信號(hào)Z變?yōu)闊o效;若Z的有效電平已經(jīng)確定,則可在Z旁邊注明。例如,Z為高有效,則可用Z=H↓來代替Z↓。Z↓Si表示進(jìn)入狀態(tài)Si時(shí),輸出信號(hào)Z變?yōu)橛行?;退出狀態(tài)Si時(shí),Z變?yōu)闊o效。若Z的有效電平已確定,可在Z旁邊注明。例如,Z為高有效,則可用Z=H↑↓來代替Z↑↓。Z↑↓Si表示如果條件T滿足,則進(jìn)入狀態(tài)Si時(shí),輸出信號(hào)Z變?yōu)橛行?;退出狀態(tài)Si時(shí),Z變?yōu)闊o效。Z↑↓=Si·TSi表示T是一個(gè)異步輸入,而Si是在異步輸入T的作用下才退出這一狀態(tài)。TSi683.3.2MDS圖的建立

ASM圖

可以作為系統(tǒng)方案的最終結(jié)果來直接設(shè)計(jì)電路,也可以作為階段性成果,轉(zhuǎn)換成MDS圖的控制器。

由ASM圖導(dǎo)出MDS圖的原則:(1)ASM圖的一個(gè)狀態(tài)框?qū)?yīng)于MDS圖的一個(gè)狀態(tài)圓:兩個(gè)狀態(tài)圓之間只允許存在一個(gè)異步輸入信號(hào),當(dāng)兩個(gè)狀態(tài)圓之間多余一個(gè)異步輸入信號(hào)時(shí),必須增加狀態(tài)圓,以免丟失異步輸入信號(hào);兩個(gè)狀態(tài)框之間若存在前后連續(xù)的多個(gè)判斷框,則表示判斷條件同時(shí)滿足時(shí),轉(zhuǎn)入下一個(gè)狀態(tài)圓。(2)ASM圖的判斷框?qū)?yīng)于MDS圖中的分支:其中判斷變量是轉(zhuǎn)換條件或分支條件的一部分或全部。(3)ASM圖中的條件輸出和MDS圖中的條件輸出相對(duì)應(yīng):條件輸出信號(hào)標(biāo)注在當(dāng)前狀態(tài)圓旁邊。(4)ASM圖狀態(tài)框上的信息就是MDS圖中對(duì)應(yīng)的狀態(tài)輸出。69例題1ASM圖和MDS之間的轉(zhuǎn)換ASM圖MDS圖(A)(B)START?YESNO計(jì)數(shù)器復(fù)位執(zhí)行ABSTARTSTARTCR↑↓OPR↑↓70例題2ASM圖和MDS之間的轉(zhuǎn)換71注:A態(tài)返回到A態(tài)時(shí),有一條件輸出:當(dāng)X=0,CP=0時(shí),RUN有效。到MDS圖例題3ASM圖和MDS之間的轉(zhuǎn)換72例題4自動(dòng)交通控制系統(tǒng)的設(shè)計(jì)設(shè)計(jì)任務(wù)

:在一個(gè)具有主、支干道的十字路口,設(shè)計(jì)一個(gè)交通燈自動(dòng)控制裝置。設(shè)計(jì)要求:(1)當(dāng)主干道與支干道均無車輛要求通行時(shí),主干道應(yīng)保持暢通,亮綠燈,支干道亮紅燈。(2)如果主干道無車,支干道有車,則允許支干道通行,主干道亮紅燈,支干道亮綠燈。(3)如果主干道和支干道均有車要求通行,則兩者應(yīng)交替通行,并要求主干道每次通行30秒,支干道每次通行20秒。(4)每次綠燈變紅燈時(shí),黃燈應(yīng)先亮5秒鐘。73控制器時(shí)鐘電路定時(shí)器傳感器SaSbcntcr30205rbybgbrayagaclk系統(tǒng)框圖

傳感器信號(hào):Sa(主道)、Sb(支道)

時(shí)鐘信號(hào):clk輸出信號(hào):ra、ya、ga;rb、yb、gb;內(nèi)部信號(hào):cr、cnt。74ASM圖

cr主黃、支紅5scnt主綠、支紅SacrSbSb30scntcnt主紅、支黃cntcnt20s5scr主紅、支綠crSbSbSa01S011110000S1S2S3010111100075MDS圖

S0S1cnt↑↓=S0SaSb30scr↑↓=S0(SaSb30s+SaSb)cnt↑↓=S15scr↑↓=S15scnt↑↓=S35scr↑↓=S35s5s5s5s5sSaSb+SaSb30s+SaSbSaSb30s+SaSbSb+SaSb20sSaSb20s+SaSbcnt↑↓=S2Sb(20s+Sa)cr↑↓=S2(SaSb20s+Sb)S2S3傳感器信號(hào):Sa、Sb時(shí)鐘信號(hào):clk輸出信號(hào):ra、ya、ga;rb、yb、gb;內(nèi)部信號(hào):cr、cnt。76第4章數(shù)字系統(tǒng)設(shè)計(jì)的基本步驟4.1數(shù)字系統(tǒng)設(shè)計(jì)的一般步驟

采用自頂向下的設(shè)計(jì)方法,具體包括如下幾步:第一步:根據(jù)系統(tǒng)的總體功能要求,進(jìn)行系統(tǒng)級(jí)設(shè)計(jì);第二步:按照一定標(biāo)準(zhǔn)將整個(gè)系統(tǒng)劃分成若干個(gè)子系統(tǒng),進(jìn)行邏輯級(jí)設(shè)計(jì);第三步:將各個(gè)子系統(tǒng)劃分為若干功能模塊,針對(duì)各模塊進(jìn)行電路級(jí)設(shè)計(jì)。應(yīng)注意兩點(diǎn):1)子系統(tǒng)的劃分要合理,數(shù)目要適當(dāng)。子系統(tǒng)劃分的太少,會(huì)失去模塊化設(shè)計(jì)的優(yōu)點(diǎn);劃分的太多,則系統(tǒng)之間的連接過于復(fù)雜,容易出錯(cuò)。對(duì)系統(tǒng)進(jìn)行邏輯劃分可按數(shù)字系統(tǒng)設(shè)計(jì)準(zhǔn)則中的分割準(zhǔn)則進(jìn)行。2)子系統(tǒng)的首要任務(wù)是正確劃分功能模塊。也就是說,如何將其正確地劃分為控制器和數(shù)據(jù)處理器模塊。子系統(tǒng)設(shè)計(jì)的主要任務(wù)是控制器模塊的設(shè)計(jì)。774.1.1系統(tǒng)級(jí)的設(shè)計(jì)過程

1)確定系統(tǒng)的邏輯功能邏輯功能的確定是設(shè)計(jì)的首要任務(wù),即根據(jù)用戶要求,對(duì)設(shè)計(jì)任務(wù)作透徹的分析和了解,確定系統(tǒng)的整體功能及其輸入信號(hào)、輸出信號(hào)、控制信號(hào)和控制信號(hào)與輸入、輸出信息之間的關(guān)系等。

2)描述系統(tǒng)功能,設(shè)計(jì)算法描述系統(tǒng)功能就是用符號(hào)、圖形、文字、表達(dá)式等形式來正確描述系統(tǒng)應(yīng)具有的邏輯功能和應(yīng)達(dá)到的技術(shù)指標(biāo);設(shè)計(jì)算法就是尋求一個(gè)實(shí)現(xiàn)系統(tǒng)邏輯功能的方案。它實(shí)質(zhì)上是把系統(tǒng)要實(shí)現(xiàn)的復(fù)雜運(yùn)算分解成一組有序進(jìn)行的子運(yùn)算。描述算法的工具有:算法流程圖、ASM圖、MDS圖等。系統(tǒng)級(jí)設(shè)計(jì)

實(shí)質(zhì)上是原理性設(shè)計(jì),是數(shù)字系統(tǒng)設(shè)計(jì)的關(guān)鍵步驟,也是最困難的,最具有創(chuàng)造性的一步。畫出算法流程圖(ASM圖、MDS圖)是完成系統(tǒng)級(jí)設(shè)計(jì)的標(biāo)志。794.1.2邏輯級(jí)和電路級(jí)的設(shè)計(jì)過程

1)根據(jù)算法選擇電路結(jié)構(gòu)

系統(tǒng)算法決定電路結(jié)構(gòu)。雖然不同的算法可以實(shí)現(xiàn)相同的系統(tǒng)功能,但是電路結(jié)構(gòu)是不同的;相同的算法也可能對(duì)應(yīng)不同的電路結(jié)構(gòu)。

2)選擇器件并實(shí)現(xiàn)電路

根據(jù)設(shè)計(jì)、生產(chǎn)條件,選擇適當(dāng)?shù)钠骷韺?shí)現(xiàn)電路,并導(dǎo)出詳細(xì)的邏輯電路圖。在此之后將是工程設(shè)計(jì)階段,它包括印刷電路板的設(shè)計(jì)、接插件的選擇及形成整機(jī)的工藝文件等。邏輯級(jí)設(shè)計(jì)所提供的邏輯圖應(yīng)充分包含全部工程設(shè)計(jì)所需要的信息。80

隨著數(shù)字集成技術(shù)的發(fā)展,VLSI規(guī)模和技術(shù)復(fù)雜度也在急劇增長(zhǎng),人工設(shè)計(jì)數(shù)字系統(tǒng)十分困難,必須依靠EDA技術(shù)。用EDA技術(shù)設(shè)計(jì)數(shù)字系統(tǒng)的實(shí)質(zhì)是一種自頂向下的分層設(shè)計(jì)方法。在每一層上,都有描述、劃分、綜合和驗(yàn)證

四種類型的工作。

描述是電路與系統(tǒng)設(shè)計(jì)的輸入方法,它可以采用圖形輸入、硬件描述語言輸入或二者混合使用的方法輸入;也可以采用波形圖輸入法。整個(gè)設(shè)計(jì)過程只有該部分由設(shè)計(jì)者完成。

劃分、綜合和驗(yàn)證

則采用EDA軟件平臺(tái)自動(dòng)完成,這樣做大大簡(jiǎn)化了設(shè)計(jì)工作,提高了效率,因此,采用EDA技術(shù)設(shè)計(jì)數(shù)字系統(tǒng)的方法得到了越來越廣泛的應(yīng)用。814.2數(shù)字系統(tǒng)的設(shè)計(jì)準(zhǔn)則進(jìn)行數(shù)字系統(tǒng)設(shè)計(jì)時(shí),通常要考慮多方面的條件和要求。由于具體的設(shè)計(jì)條件和要求千差萬別,實(shí)現(xiàn)的方法也各不相同,因此,數(shù)字系統(tǒng)的設(shè)計(jì)還應(yīng)具備一些共同的準(zhǔn)則。4.2.1分割準(zhǔn)則自頂向下的設(shè)計(jì)方法是一種層次化的設(shè)計(jì)方法,需要對(duì)系統(tǒng)功能進(jìn)行分割,然后用邏輯語言進(jìn)行描述。在分割過程中,若分割過粗,則不易用邏輯語言表達(dá);分割過細(xì),則帶來不必要的重復(fù)和繁瑣。因此,分割的粗細(xì)程度應(yīng)根據(jù)具體情況而定??勺裱韵略瓌t:82(1)分割后最底層的邏輯塊應(yīng)適合用邏輯語言進(jìn)行表達(dá)。如果利用邏輯圖作最底層模塊輸入方法,需要分解到門,觸發(fā)器和宏模塊一級(jí);用HDL行為描述語言則可以分解到算法一級(jí)。(2)考慮共享模塊。在設(shè)計(jì)中,往往會(huì)出現(xiàn)一些功能相似的邏輯模塊,相似的功能應(yīng)該設(shè)計(jì)成共享的基本模塊,象子程序一樣由高層邏輯塊調(diào)用。這樣可以減少需要設(shè)計(jì)的模塊數(shù)目、改善設(shè)計(jì)的結(jié)構(gòu)化特性。(3)接口信號(hào)線盡可能少。復(fù)雜的接口信號(hào)容易引起設(shè)計(jì)錯(cuò)誤,并且為布線帶來困難。以交互信號(hào)最少的地方為邊界劃分模塊,用最少的信號(hào)線進(jìn)行信號(hào)和數(shù)據(jù)的交換為最佳的方法。(4)結(jié)構(gòu)均稱。同層次的模塊之間,在資源和I/O分配上,不出現(xiàn)懸殊的差異,沒有明顯的結(jié)構(gòu)和性能上的瓶頸。(5)通用性好,易于移植。模塊的劃分和設(shè)計(jì)應(yīng)滿足通用性要求,模塊設(shè)計(jì)應(yīng)考慮移植的問題。一個(gè)好的設(shè)計(jì)模型塊應(yīng)該可以在其它設(shè)計(jì)中使用,并且容易升級(jí)和移植;另外,在設(shè)計(jì)中應(yīng)盡可能避免使用與器件有關(guān)的特性,保證設(shè)計(jì)可以在不同的器件(CPLD或FPGA)上實(shí)現(xiàn),即設(shè)計(jì)具有可移植性。

834.2.2系統(tǒng)的可觀測(cè)性在系統(tǒng)設(shè)計(jì)中,應(yīng)該同時(shí)考慮功能檢查和性能的測(cè)試,即系統(tǒng)觀測(cè)性的問題。

一個(gè)系統(tǒng)除了引腳上的信號(hào)外,系統(tǒng)內(nèi)部的狀態(tài)也是需要測(cè)試的內(nèi)容。如果輸出能夠反映系統(tǒng)內(nèi)部的狀態(tài),即可以通過輸出觀測(cè)到系統(tǒng)內(nèi)部的工作狀態(tài),那么這個(gè)系統(tǒng)是可觀測(cè)的。如果輸出信號(hào)不能完全反映系統(tǒng)內(nèi)部工作狀態(tài),那么這個(gè)系統(tǒng)是不可觀測(cè)的或部分可觀測(cè)的,這時(shí)為了測(cè)試系統(tǒng)內(nèi)部的狀態(tài),就需要建立必要的觀測(cè)電路,將不可觀測(cè)的系統(tǒng)轉(zhuǎn)換為可觀測(cè)系統(tǒng)。

一些有經(jīng)驗(yàn)的設(shè)計(jì)者會(huì)自覺地在設(shè)計(jì)系統(tǒng)的同時(shí)設(shè)計(jì)觀測(cè)電路,即觀測(cè)器,指示系統(tǒng)內(nèi)部的工作狀態(tài)。一方面,將系統(tǒng)內(nèi)部的信號(hào)引向管腳輸出供外部測(cè)試,另一方面,對(duì)系統(tǒng)工作狀態(tài)進(jìn)行判斷。建立觀測(cè)器,可遵循以下原則:(1)系統(tǒng)的關(guān)鍵點(diǎn)信號(hào),如時(shí)鐘、同步信號(hào)和狀態(tài)機(jī)狀態(tài)等信號(hào)。(2)具有代表性的節(jié)點(diǎn)和線路上的信號(hào)。(3)具備簡(jiǎn)單的“系統(tǒng)工作是否正?!钡呐袛嗄芰?。844.2.3同步和異步電路盡可能采用同步電路進(jìn)行設(shè)計(jì),避免使用異步電路。使用異步電路的場(chǎng)合,應(yīng)采取必要的措施來避免競(jìng)爭(zhēng)和增加穩(wěn)定性。系統(tǒng)使用兩個(gè)或兩個(gè)以上的時(shí)鐘,這時(shí)對(duì)模塊之間的接口信號(hào),要采取一定的措施,必要時(shí)需要插入時(shí)鐘同步電路。854.2.4最優(yōu)化設(shè)計(jì)

1、優(yōu)化原則

為節(jié)省器件的邏輯資源或提高工作速度,設(shè)計(jì)系統(tǒng)的過程相當(dāng)于求最優(yōu)解的過程。這個(gè)求最優(yōu)解的過程需要給定兩個(gè)約束條件:邊界條件和最優(yōu)化目標(biāo)。

邊界條件:即器件的資源及性能限制。

最優(yōu)化目標(biāo)

有多種,設(shè)計(jì)中常見的最優(yōu)化目標(biāo)有:

(1)器件資源利用率最高;

(2)系統(tǒng)工作速度最快,即延時(shí)最?。?/p>

(3)布線最容易,即可實(shí)現(xiàn)性最好。

各個(gè)最優(yōu)化目標(biāo)會(huì)相互沖突產(chǎn)生矛盾:抓主要矛盾

現(xiàn)代的EDA軟件中,一般都提供常用的優(yōu)化設(shè)計(jì)工具,用戶可以通過改變“優(yōu)化策略”來指示EDA工具完成要求的設(shè)計(jì)。

2、常用的優(yōu)化方法:

864.2.5系統(tǒng)設(shè)計(jì)的藝術(shù)一個(gè)系統(tǒng)的設(shè)計(jì)通常需要經(jīng)過反復(fù)的修改、優(yōu)化,在各種設(shè)計(jì)要求、限定條件、優(yōu)化原則之間反復(fù)權(quán)衡利弊、折衷、構(gòu)思、創(chuàng)造才能達(dá)到設(shè)計(jì)的意圖和要求。設(shè)計(jì)既是一門技術(shù),也是一門藝術(shù),應(yīng)借鑒藝術(shù)的概念和原理進(jìn)行設(shè)計(jì)。一個(gè)理想的設(shè)計(jì)需要設(shè)計(jì)者經(jīng)過多次反復(fù)才能達(dá)到比較滿意的結(jié)果。判斷設(shè)計(jì)反復(fù)的過程何時(shí)可以停止,或者判斷設(shè)計(jì)還能否進(jìn)一步優(yōu)化,以及在總體上把握設(shè)計(jì)優(yōu)化進(jìn)程,可以借鑒一個(gè)藝術(shù)概念“和諧”。一個(gè)好的設(shè)計(jì),應(yīng)該滿足“和諧”的基本特征。87對(duì)數(shù)字系統(tǒng)可以根據(jù)以下幾點(diǎn)作出判斷:(1)直覺判斷,設(shè)計(jì)總體上流暢、無拖泥帶水的感覺。(2)結(jié)構(gòu)協(xié)調(diào)。資源分配、I/O分配合理,沒有任何設(shè)計(jì)上和性能上的瓶頸。(3)具有良好的可觀測(cè)性。(4)易于修改和移植。(5)器件的特點(diǎn)得到充分的發(fā)揮。

作到前三點(diǎn),可以說是一個(gè)不錯(cuò)的設(shè)計(jì);作到了最后兩點(diǎn),可稱為是比較理想的設(shè)計(jì)。884.3數(shù)字系統(tǒng)設(shè)計(jì)中的幾個(gè)工程實(shí)際問題

4.3.1提高系統(tǒng)工作速度的方法1、影響系統(tǒng)工作速度的主要因素關(guān)鍵路徑:從系統(tǒng)輸入到輸出的各條路徑中信號(hào)通過時(shí)間最長(zhǎng)的那條路徑門電路延時(shí):門本身延時(shí)和連線延時(shí)

2、提高系統(tǒng)工作速度的主要方法◆縮短關(guān)鍵路徑長(zhǎng)度◆改變關(guān)鍵路徑上的處理順序◆提高各個(gè)運(yùn)算器的工作速度◆利用多周期路徑提高工作速度◆減少關(guān)鍵路徑上部件的扇出數(shù)4.3.2縮小電路規(guī)模和降低功耗的方法

4.3.3系統(tǒng)誤操作的成因及消除方法4.3.4非同步信號(hào)的控制方法89乘法器abstartMdone844clk例題

4位乘法器的設(shè)計(jì)設(shè)計(jì)一個(gè)如下圖所示的4位乘法器,圖中:a、b為兩個(gè)4位操作數(shù)輸入;start為乘法器的啟動(dòng)信號(hào);clk為時(shí)鐘信號(hào);M為8位乘法結(jié)果;done為乘法運(yùn)算結(jié)束信號(hào)。90根據(jù)二進(jìn)制乘法的運(yùn)算規(guī)則,運(yùn)算過程為:M=b0×a×20+b1×a×21+b2×a×22+b3×a×23

若a=1011,b=1101,則運(yùn)算過程和運(yùn)算結(jié)果是:1011----------a被乘數(shù)×1101----------b乘數(shù)101100001011+101110001111------------M1.功能確定:----------b0×a×20

0----------b1×a×21(左移1位)00----------b2×a×22(左移2位)000----------b3×a×23(左移3位)2.算法設(shè)計(jì):91對(duì)4位乘法器電路行為描述如下:根據(jù)上述描述,4位乘法器的算法是采用將被乘數(shù)向左移位,并與乘數(shù)逐位相乘求得位積,然后與部分積累加求和的運(yùn)算過程,經(jīng)過4次迭代后獲得乘法結(jié)果。其算法流程圖描述如下圖所示:i=0,M=0M←a×bi+Ma左移1位i←i+1開始結(jié)束yesnoi

=3?92根據(jù)算法流程圖可知其具體實(shí)現(xiàn)應(yīng)包括:1.將被乘數(shù)的高位補(bǔ)0擴(kuò)展成8位。2.從最低位開始依次選擇乘數(shù)位與被乘數(shù)進(jìn)行乘運(yùn)算求得位積;向左移位:從次低位開始,在求位積前將被乘數(shù)依次左移1位;與部分積累加。被乘數(shù)移位時(shí),其低端均移入0。3.經(jīng)4次迭代后,乘法運(yùn)算結(jié)束。i=0,M=0M←a×bi+Ma左移1位i←i+1開始結(jié)束yesnoi

=3?934位乘法器的邏輯框圖控制器計(jì)數(shù)器M=4Q1Q0MUXb0b1b2b30123YA1A0RMADDANDSLA0000

a3a2a1a088888MCPCrcnt=3CMCAstartdoneCLK3.電路結(jié)構(gòu)的選擇94Q7Q6Q5Q4Q3Q2Q1Q0D7D6D5D4D3D2D1D0S0S1SlD0D1D2D3S0S1SlD0D1D2D3控制單元PTCr74LS161LDQ1Q2

A0A1D0D1Y1D2D3D0D2Y2D2D3

&CPCON=3

MCP1CrCP174LS15374LS00111CrCrCP2C074LS2732X74LS832X74LS002X74LS194a3a2a1a00000B0B1B2B31000Q7Q6Q5Q4Q3Q2Q1Q04.電路實(shí)現(xiàn)乘法器數(shù)據(jù)處理單元邏輯電路圖95高速并行乘法器的算法設(shè)計(jì)和電路結(jié)構(gòu)在上述乘法器的設(shè)計(jì)過程中,電路結(jié)構(gòu)是一個(gè)時(shí)序結(jié)構(gòu)的電路,運(yùn)算是通過左移操作一位一位地進(jìn)行的,不適合高速運(yùn)算。若設(shè)想左移操作不是通過移位寄存器在時(shí)鐘信號(hào)驅(qū)動(dòng)下進(jìn)行,而是硬件直接連接而成,則運(yùn)算速度可以大大提高。根據(jù)這一思路,設(shè)計(jì)出一個(gè)高速并行運(yùn)算乘法器,輸入為兩個(gè)帶符號(hào)位的4位二進(jìn)制數(shù)。其電路結(jié)構(gòu)如圖3-11所示。96Σ3Σ2Σ1Σ0M0CO加法器CIΣ3Σ2Σ1Σ0M1CO加法器CIΣ3Σ2Σ1Σ0M2CO加法器CIΣ3Σ2Σ1Σ0M7M6M5M4M3CO加法器CI0000b0×ab1×ab2×ab3×aMsXORas

bs符號(hào)位bi×a0bibi×a1bi×a2bi×a3a0a1a2a3bi×a模塊高速乘法器的電路結(jié)構(gòu)97

上述結(jié)構(gòu)的乘法器的運(yùn)算速度僅和加法器產(chǎn)生進(jìn)位信號(hào)的延遲時(shí)間有關(guān)。通常加法器的延遲時(shí)間僅十幾納秒至幾十納秒,因此該結(jié)構(gòu)乘法器的運(yùn)算速度將非常快。當(dāng)然,獲得高運(yùn)算速度是以增加硬件數(shù)量(價(jià)格)為代價(jià)的。多位乘法器還可以采用其它的算法模型和電路結(jié)構(gòu)。

需要注意的是:在數(shù)字系統(tǒng)設(shè)計(jì)中,不但要考慮用戶對(duì)系統(tǒng)邏輯功能的要求,而且要考慮許多非邏輯因素,如系統(tǒng)的運(yùn)算速度、產(chǎn)品的成本價(jià)格、電路的可靠性、可測(cè)性、功耗、體積以及工藝等其它因素。98第5章控制單元的實(shí)現(xiàn)數(shù)據(jù)處理單元控制單元控制序列信號(hào)反饋應(yīng)答信號(hào)待處理輸入數(shù)據(jù)外部輸入控制信號(hào)處理后輸出數(shù)據(jù)輸出控制信號(hào)數(shù)據(jù)流控制流控制單元用來產(chǎn)生控制信號(hào)序列,以決定何時(shí)進(jìn)行何種數(shù)據(jù)運(yùn)算。數(shù)字系統(tǒng)基本結(jié)構(gòu)99微程序控制器法有限狀態(tài)機(jī)法軟硬結(jié)合實(shí)現(xiàn)的控制器又稱微代碼控制器。是采用軟、硬結(jié)合的一種實(shí)現(xiàn)方法,其設(shè)計(jì)的規(guī)整性非常好。硬件直接實(shí)現(xiàn)的控制器是指對(duì)于給定的電路指標(biāo)要求,直接采用硬件電路實(shí)現(xiàn)。每個(gè)電路,都必須專門進(jìn)行設(shè)計(jì),有較高的運(yùn)算速度,但種類多,通用性差??刂茊卧碾娐穼?shí)現(xiàn)形式多路選擇器法傳統(tǒng)方法一對(duì)一觸發(fā)器法1005.1傳統(tǒng)方法●同步時(shí)序電路:狀態(tài)圖●控制器:ASM圖、硬件描述語言等

控制器具有與同步時(shí)序電路相似的結(jié)構(gòu),因此同步時(shí)序電路的設(shè)計(jì)方法應(yīng)基本適用于控制器的設(shè)計(jì),差別主要體現(xiàn)在設(shè)計(jì)依據(jù)上:Z1i←i+1Z2yes11Xno1000某控制器的ASM圖如右圖所示,試使用傳統(tǒng)方法設(shè)計(jì)該控制器101由ASM圖畫出狀態(tài)表:求次態(tài)方程:求驅(qū)動(dòng)方程和輸出方程:畫邏輯圖:略特點(diǎn):傳統(tǒng)方法實(shí)現(xiàn)的硬件圖與ASM圖之間無明顯的對(duì)應(yīng)關(guān)系,一旦ASM圖有很小的改動(dòng)時(shí),需要重新設(shè)計(jì)電路;此外,當(dāng)系統(tǒng)的狀態(tài)超過8個(gè)時(shí),該方法實(shí)現(xiàn)非常困難。00/0000/0000/0000/0000/0000/0011/0110/11Q2Q100011110X01Q2n+1=Q2Q1Q1n+1=Q2Q1XD2=Z1=Q2Q1D1=Z2=Q2Q1XQ2n+1Q1n+1/Z2Z1Z1i←i+1Z2yes11Xno10001025.2多路選擇器法方法:確定所需觸發(fā)器個(gè)數(shù);在每級(jí)觸發(fā)器的輸入端加一個(gè)多路選擇器;多路選擇器輸出接觸發(fā)器的輸入,控制觸發(fā)器產(chǎn)生相應(yīng)次態(tài);觸發(fā)器現(xiàn)態(tài)加到多路選擇器的選擇端。用多路選擇器實(shí)現(xiàn)ASM圖的特點(diǎn)是次態(tài)的產(chǎn)生與ASM圖有一一對(duì)應(yīng)關(guān)系。傳統(tǒng)方法是通過計(jì)算得到次態(tài)方程,該方法是通過查表得到次態(tài)方程,多路選擇器就是查表模塊。例題:用多路選擇器法實(shí)現(xiàn)上例所示的ASM圖。例題中,ASM圖共有3個(gè)狀態(tài),因此需要2個(gè)觸發(fā)器和2個(gè)多路選擇器實(shí)現(xiàn),并且每個(gè)多路選擇器至少應(yīng)有3個(gè)輸入端。Z1i←i+1Z2yes11Xno1000103首先根據(jù)ASM圖畫出狀態(tài)轉(zhuǎn)換表

由表可看出:當(dāng)處在00狀態(tài)時(shí),若X=0,Q2n+1=1,Q1n+1=0若X=1,Q2n+1=1,Q1n+1=1

所以D10=X,D20=1同樣道理,在10,11,01狀態(tài)時(shí),次態(tài)都為0,所以D11=D12=D13=D21=D22=D23=0原理圖略Z1i←i+1Z2yes11Xno10001045.3一對(duì)一觸發(fā)器法一對(duì)一觸發(fā)器法是指一個(gè)狀態(tài)使用一個(gè)觸發(fā)器實(shí)現(xiàn)的方法。一對(duì)一觸發(fā)器法中驅(qū)動(dòng)方程的歸納可直接由ASM圖寫出,從而省掉列狀態(tài)圖的過程,方法是:觀察指向某狀態(tài)的箭頭數(shù),每一個(gè)箭頭相當(dāng)于該狀態(tài)框次態(tài)方程中的一個(gè)與項(xiàng),而次態(tài)方程是全部箭頭所代表的與項(xiàng)之和。例題:105狀態(tài)機(jī)是純硬件數(shù)字系統(tǒng)中的順序控制電路,其運(yùn)行方式上類似于控制靈活和方便的CPU,而在運(yùn)行速度和工作可靠性方面都優(yōu)于CPU。

狀態(tài)機(jī)結(jié)構(gòu)模式相對(duì)簡(jiǎn)單,設(shè)計(jì)方案相對(duì)固定。狀態(tài)機(jī)的HDL表述豐富多樣,程序?qū)哟畏置?,結(jié)構(gòu)清晰,易讀易懂;在排錯(cuò)、修改和模塊移植方面也有其獨(dú)到之處。

在高速運(yùn)算和控制方面,狀態(tài)機(jī)具有巨大的優(yōu)勢(shì)。在VHDL中,一個(gè)狀態(tài)機(jī)可以有多個(gè)進(jìn)程構(gòu)成,一個(gè)結(jié)構(gòu)體中可以包含多個(gè)狀態(tài)機(jī),而一個(gè)單獨(dú)的狀態(tài)機(jī)(或多個(gè)并行運(yùn)行的狀態(tài)機(jī))以順序方式所能完成的運(yùn)算和控制方面的工作與一個(gè)CPU的功能類似。因此,一個(gè)設(shè)計(jì)實(shí)體的功能便類似于一個(gè)含有并行運(yùn)行的多CPU的高性能微處理器的功能。5.4有限狀態(tài)機(jī)法

為什么使用狀態(tài)機(jī)

就可靠性而言:

由于CPU本身的結(jié)構(gòu)特點(diǎn)與執(zhí)行軟件指令的工作方式?jīng)Q定了CPU不能獲得圓滿的容錯(cuò)保障,這已是不爭(zhēng)的事實(shí)。而狀態(tài)機(jī)系統(tǒng)不同,首先由于它是純硬件電路構(gòu)成,不存在CPU運(yùn)行軟件過程中許多固有的缺陷;其次是由于狀態(tài)機(jī)設(shè)計(jì)中能使用各種完整的容錯(cuò)技術(shù);第三是狀態(tài)機(jī)從非法狀態(tài)跳出進(jìn)入正常狀態(tài)的耗時(shí)十分短暫,通常只有2、3個(gè)時(shí)鐘周期,約幾十個(gè)ns;而CPU則是通過復(fù)位方式從非法運(yùn)行方式中恢復(fù)過來,耗時(shí)達(dá)幾十ms,這對(duì)于高速高可靠系統(tǒng)是無法容忍的。

就運(yùn)行速度而言:

狀態(tài)機(jī)的狀態(tài)變換周期只有一個(gè)時(shí)鐘周期,而在每一個(gè)狀態(tài)中,狀態(tài)機(jī)可以完成許多并行的運(yùn)算和控制操作。一個(gè)完整的控制程序,可使用多個(gè)并行狀態(tài)機(jī)構(gòu)成。一般由狀態(tài)機(jī)構(gòu)成的硬件系統(tǒng)比CPU所能完成同樣功能的軟件系統(tǒng)的工作速度要高出三到四個(gè)數(shù)量級(jí)。1081.一般有限狀態(tài)機(jī)設(shè)計(jì)●說明部分●主控時(shí)序進(jìn)程●主控組合進(jìn)程●輔助進(jìn)程用VHDL設(shè)計(jì)狀態(tài)機(jī),結(jié)構(gòu)體一般由以下幾部分組成:109●說明部分:

說明部分中使用TYPE

語句定義一個(gè)新的數(shù)據(jù)類型,一般為枚舉型,其元素都用狀態(tài)機(jī)的狀態(tài)名來定義。說明部分一般放在ARCHITECTURE

和BEGIN之間,例如:ARCHITECTURE···IS

TYPEstatesIS(S0,S1,S2,S3);

SIGNALcurrent_state,next_state:states;

BEGIN

···110●主控時(shí)序進(jìn)程:

所謂主控時(shí)序進(jìn)程是指負(fù)責(zé)狀態(tài)機(jī)運(yùn)轉(zhuǎn)

和在時(shí)鐘驅(qū)動(dòng)下負(fù)責(zé)狀態(tài)轉(zhuǎn)換的進(jìn)程。

主控時(shí)序進(jìn)程

實(shí)際上是一個(gè)對(duì)工作時(shí)鐘信號(hào)敏感的進(jìn)程,可看作狀態(tài)機(jī)的“驅(qū)動(dòng)泵”,而時(shí)鐘

clk

相當(dāng)于這個(gè)

“驅(qū)動(dòng)泵”中的驅(qū)動(dòng)功率電源。resetPROCESSREGPROCESSCOMcurrent_statenext_stateclkS_inputS_outputFSM:一般狀態(tài)機(jī)結(jié)構(gòu)框圖工作示意圖主控時(shí)序進(jìn)程111主控組合進(jìn)程通過信號(hào)current_state中的狀態(tài)值,進(jìn)入相應(yīng)的狀態(tài),并在此狀態(tài)中根據(jù)外部輸入的信號(hào)如S_input

(指令),向外發(fā)出控制信號(hào)如S_output

,同時(shí)確定下一狀態(tài)的取向,即向next_state中賦入相應(yīng)的狀態(tài)值。此狀態(tài)值通過next_state傳給主控時(shí)序進(jìn)程,直至下一個(gè)時(shí)鐘脈沖到來再進(jìn)入再一次的狀態(tài)轉(zhuǎn)換周期。因此,主控組合進(jìn)程也稱狀態(tài)譯碼進(jìn)程?!裰骺亟M合進(jìn)程:

主控組合進(jìn)程的任務(wù)是根據(jù)外部輸入的控制信號(hào)(包括來自狀態(tài)機(jī)外部的信號(hào)和來自狀態(tài)機(jī)內(nèi)部其它非主控的組合和時(shí)序進(jìn)程的信號(hào)),及當(dāng)前狀態(tài)的狀態(tài)值確定下一個(gè)狀態(tài)的取向,即next_state

的取值內(nèi)容,并確定對(duì)外輸出或?qū)?nèi)其它組合和時(shí)序進(jìn)程輸出控制信號(hào)的內(nèi)容。具體過程是:主控組合進(jìn)程resetPROCESSREGPROCESSCOMcurrent_statenext_stateclkS_inputS_outputFSM:一般狀態(tài)機(jī)結(jié)構(gòu)框示意圖113libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;ENTITYs_machineISPORT(clk,reset:INstd_logic; s_inputs:INstd_logic_vector(0to1); s_outputs:OUTintegerrange0to15);ENDs_machine;ARCHITECTUREarcOFs_machineIS

TYPEstatsIS(s0,s1,s2,s3);SIGNALcurrent_state,next_state:stats;BEGINreg:PROCESS(reset,clk)BEGIN IFreset='1'THENcurrent_state<=s0; ELSIF(clk'eventandclk='1')THEN current_state<=next_state; ENDIF;ENDPROCESS;例1114com:PROCESS(current_state,s_inputs)BEGIN casecurrent_stateis whens0=>s_outputs<=5; ifs_inputs="00"thennext_state<=s0; elsenext_state<=s1; endif; whens1=>s_outputs<=8; ifs_inputs="01"thennext_state<=s1; elsenext_state<=s2; endif; whens2=>s_outputs<=12; ifs_inputs="10"thennext_state<=s0; elsenext_state<=s3; endif; whens3=>s_outputs<=14; ifs_inputs="11"thennext_state<=s3; elsenext_state<=s0; endif; endcase;ENDPROCESS;ENDarc;115從一般意義上說,進(jìn)程間是并行運(yùn)行

的,但由于敏感信號(hào)的設(shè)置不同及電路的延遲,在時(shí)序上進(jìn)程間的動(dòng)作是有先后的。本例中,就狀態(tài)轉(zhuǎn)換這一行為來說,進(jìn)程“reg”在時(shí)鐘上升沿到來時(shí)將首先運(yùn)行,完成狀態(tài)轉(zhuǎn)換的賦值。而進(jìn)程“com”就只有當(dāng)來自進(jìn)程“reg”的信號(hào)current_state改變時(shí)才開始動(dòng)作。

請(qǐng)注意:在此狀態(tài)機(jī)中,有兩個(gè)信號(hào)起到了互相反饋的作用,完成兩個(gè)進(jìn)程間信息傳遞的功能。這兩個(gè)信號(hào)是:

current_state(進(jìn)程“reg”→進(jìn)程“com”)

next_state(進(jìn)程“com”→進(jìn)程“reg”)反饋信號(hào)116●輔助進(jìn)程:用于配合狀態(tài)機(jī)工作的組合進(jìn)程或時(shí)序進(jìn)程。例如,為了完成某種算法的進(jìn)程;為了穩(wěn)定輸出而設(shè)置的數(shù)據(jù)鎖存器;或者用于配合狀態(tài)機(jī)工作的其它時(shí)序進(jìn)程等。例如上例中,如果希望輸出信號(hào)具有寄存器鎖存功能,則需要為此輸出寫第三個(gè)進(jìn)程。117AD574工作時(shí)序RCSTATUSD[11..0]D[11..0]20μsZCS:片選信號(hào),低有效R/C:數(shù)據(jù)輸出和AD轉(zhuǎn)換控制信號(hào)A0:12位AD轉(zhuǎn)換啟動(dòng)和12位數(shù)據(jù)輸出控制信號(hào)K12/8:12位/8位輸出有效控制信號(hào)STATUS:轉(zhuǎn)換結(jié)束狀態(tài)位,低有效A_inputAD574CSA0R/CK12/8STATUSD[11..0]CSA0RCK12/8STATUSD[11..0]A例2用狀態(tài)機(jī)設(shè)計(jì)A/D采樣控制器(AD574,12位,采樣周期20μs)118CECSRCK12/8A0工作狀態(tài)0××××禁止×1×××禁止100×0啟動(dòng)12位轉(zhuǎn)換100×1啟動(dòng)8位轉(zhuǎn)換1011×12位并行輸出有效10100高8位并行輸出有效10101低4位加上尾隨4個(gè)0有效AD574邏輯控制真值表119對(duì)AD574初始化打開片選,啟動(dòng)AD轉(zhuǎn)換STATUS=’1’正在轉(zhuǎn)換,等待STATUS=’0’轉(zhuǎn)換結(jié)束12位轉(zhuǎn)換數(shù)據(jù)輸出有效鎖存數(shù)據(jù)St1St2St3St4St0AD574采樣控制狀態(tài)圖120采樣狀態(tài)機(jī)結(jié)構(gòu)框圖clkPROCESSREGPROCESSCOMcurrent_statenext_stateA_inputQ[11..0]FSM:AD574PROCESSCOMPROCESSLATCHAD574CSA0RCK12/8STATUSD[11..0]lock0lock121libraryieee;useieee.std_logic_1164.all;ENTITYad574ISPORT(d :INstd_logic_vector(11downto0); clk,status :INstd_logic; lock :OUTstd_logic; cs,a0,rc,k12_8:OUTstd_logic; q :OUTstd_logic_vector(11downto0));ENDad574;ARCHITECTUREarcOFad574IS TYPEstatsIS(s0,s1,s2,s3,s4); SIGNALcurrent_state,next_state:stats; SIGNALregl:std_logic_vector(11downto0); SIGNALlock0:std_logic;BEGIN k12_8<='1';lock<=lock0;q<=regl;reg:PROCESS(clk) BEGIN IF(clk'eventandclk='1')THEN current_state<=next_state; ENDIF;ENDPROCESS;122latch1:PROCESS(lock0)BEGIN IF(lock0'eventandlock0='1')THEN regl<=d; ENDIF;ENDPROCESS;com:PROCESS(current_state,status)BEGINcasecurrent_stateiswhens0=>next_state<=s1; cs<='1';a0<='1';rc<='1';lock0<='0'; whens1=>next_state<=s2; cs<='0';a0<='0';rc<='0';lock0<='0'; whens2=>ifstatus='1'thennext_state<=s2;elsenext_state<=s3;endif; cs<='0';a0<='0';rc<='0';lock0<='0'; whens3=>next_state<=s4; cs<='0';a0<='0';rc<='1';lock0<='0'; whens4=>next_state<=s0;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論