• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于VHD 的四路搶答器的設(shè)計實現(xiàn)

      2015-06-02 12:14董小瓊
      電腦知識與技術(shù) 2015年9期
      關(guān)鍵詞:EDA技術(shù)搶答器設(shè)計

      董小瓊

      摘要:VHDL 是一種標(biāo)準(zhǔn)的硬件描述語言,是當(dāng)今電子設(shè)計自動化( EDA) 的核心技術(shù),越來越多的硬件設(shè)計者使用VHDL描述數(shù)字系統(tǒng)。本文通過四路搶答器的設(shè)計實例,介紹了利用VHDL設(shè)計電路的流程和方法,突出了它與傳統(tǒng)的電子電路設(shè)計方法相比較而表現(xiàn)出的優(yōu)越性。

      關(guān)鍵詞:EDA技術(shù);數(shù)字系統(tǒng);VHDL語言;搶答器;設(shè)計

      中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2015)09-0093-03

      Abstract: VHDL is a standard hardware description language, is the core of the modern electronic design automation (EDA) technology, more and more designers using VHDL hardware description number system. In this paper, by the example of the design of four way responder, introduces the process and method of VHDL circuit design, highlighting its advantages and electronic circuit design method of the traditional comparison shows.

      Key words: EDA technology; Digital system; VHDL language; Responder; Design

      EDA是電子設(shè)計自動化(Electronic Design Automation)的縮寫,如今EDA技術(shù)已成為電子設(shè)計領(lǐng)域里一種重要的電子系統(tǒng)設(shè)計手段,通過EDA技術(shù)能夠?qū)崿F(xiàn)利用軟件的方式來設(shè)計硬件系統(tǒng)。而傳統(tǒng)的電子系統(tǒng)設(shè)計方案一般是選擇具有固定功能的標(biāo)準(zhǔn)集成電路和分立元器件,構(gòu)建單元電路,最后將各單元電路連接在一起進(jìn)行整機(jī)調(diào)試,從而實現(xiàn)系統(tǒng)功能。這種設(shè)計方法因其手工設(shè)計占有很大比重,調(diào)試工作也較復(fù)雜,故不便于進(jìn)行復(fù)雜電路的設(shè)計與調(diào)試,例外,查找和修改電路中的錯誤也不方便,可移植性差,且只能在生產(chǎn)出樣機(jī)后才能進(jìn)行實測。而以EDA軟件為平臺,以VHDL硬件描述語言來編程設(shè)計數(shù)字系統(tǒng),只需要經(jīng)過設(shè)計輸入、項目編譯、項目校驗、項目編程配置四步,在這四步中只有設(shè)計輸入過程由設(shè)計者完成,其他三步則采用EDA軟件平臺自動完成,且在設(shè)計的各個階段均可用計算機(jī)仿真驗證,這樣極大地簡化了設(shè)計的工作量,縮短了系統(tǒng)開發(fā)周期,提高了工作效率。

      目前,硬件描述語言以VHDL、Verilog HDL最為流行,它們都是IEEE的標(biāo)準(zhǔn)語言。我國以VHDL作為電子設(shè)計自動化硬件描述語言的國家標(biāo)準(zhǔn)。VHDL進(jìn)行復(fù)雜電路設(shè)計時,往往采用自頂向下結(jié)構(gòu)化的設(shè)計方法,先對整個系統(tǒng)進(jìn)行方案設(shè)計, 按功能劃分成若干單元模塊, 然后對每個單元模塊進(jìn)一步細(xì)分編程。在程序結(jié)構(gòu)上,VHDL包含實體和結(jié)構(gòu)體兩個基本部分,完整的VHDL結(jié)構(gòu)還包括配置、程序包和庫。下面介紹基于VHDL的簡易四路搶答器的設(shè)計過程。

      1 系統(tǒng)功能與要求

      搶答器可容納四組參賽者同時搶答,每組設(shè)置一個按鈕供搶答者使用。搶答器設(shè)置使能端(即主持人發(fā)出搶答開始指令端),當(dāng)此信號有效時,如參賽者按下?lián)尨痖_關(guān),搶答器判斷第一搶答者并指示該組搶答成功,其他組搶答開關(guān)失效,若提前搶答,發(fā)出警報。系統(tǒng)具有清零功能。當(dāng)清零端有效時,搶答器對前一輪搶答的判斷清零,恢復(fù)為初始狀態(tài)。

      2 系統(tǒng)的設(shè)計分析

      根據(jù)系統(tǒng)要求,我們需要設(shè)置四個按鈕分別為a,b,c,d作為搶答器的四組輸入信號,當(dāng)按鈕按下時其值對應(yīng)為“1”表示有搶答信號,否則無搶答信號, a,b,c,d為標(biāo)準(zhǔn)邏輯類型,搶答成功者用數(shù)碼管顯示其編號,同時對應(yīng)的指示燈亮。

      根據(jù)系統(tǒng)要求我們還需要設(shè)置主持人搶答開始指令按鈕G,當(dāng)按鈕按下其值為“1”,表明可以開始搶答,提前搶答則報警信號False為“1”發(fā)出報警。清零按鈕K,按下時其值為“1”,系統(tǒng)清零。

      3 系統(tǒng)的設(shè)計與實現(xiàn)

      我們在MAX+plussII的環(huán)境中進(jìn)行本任務(wù)的設(shè)計,MAX+plussII是美國ALtera公司提供的FPGA、CPLD開發(fā)集成環(huán)境,其界面友好,使用便捷,被譽(yù)為業(yè)界最易用易學(xué)的EDA軟件。其對電子系統(tǒng)進(jìn)行設(shè)計的第一步就是設(shè)計輸入,這里我們采用VHDL硬件描述語言輸入。硬件描述語言邏輯描述能力強(qiáng),在描述復(fù)雜設(shè)計時,非常簡潔,具有很強(qiáng)的邏輯描述和仿真功能。

      3.1 VHDL的實體設(shè)計

      一個VHDL程序必須包括實體(ENTITY)和結(jié)構(gòu)體(ARCHITECTURE),設(shè)計實體是用來定義電路模塊或系統(tǒng)的外部輸入輸出端口,描述它與其他部分(模塊)之間的連接關(guān)系,這一部分如同是一個“黑匣子”,描述時并不需要考慮電路內(nèi)部的性能和具體工作。根據(jù)本設(shè)計的要求及分析,本設(shè)計的實體部分定義輸入端口為:一個清零輸入端口、一個主持人搶答指令輸入端口,另外還有四個搶答者搶答按鈕的輸入端口。輸出端口為:一個提前搶答報警信號輸出端口、搶答成功對應(yīng)的指示燈信號輸出端口4個,搶答成功者編號的七段數(shù)碼管顯示的對應(yīng)輸出端口。

      實體部分的VHDL代碼如下:

      entity qiangda is

      port(K: in std_logic; --清零端口

      G : in std_logic; --搶答指令端

      a,b,c,d: in std_logic; --搶答按鈕

      false: out std_logic_; --提前搶答警報

      q: out std_logic_vector(3 downto 0));

      Dout:out std_logic_vector(6 downto 0); --搶答成功顯示

      end qiangda;

      3.2 VHDL的結(jié)構(gòu)體設(shè)計

      VHDL的結(jié)構(gòu)體主要用來描述電路模塊或系統(tǒng)的邏輯功能,是程序設(shè)計的核心部分。在利用VHDL 語言進(jìn)行編程時只需要描述清楚各信號或變量之間的邏輯關(guān)系, 而不需要受到實際信號流向的約束。因此在對四路搶答器進(jìn)行編程時, 我們只需要判斷幾個特殊的狀態(tài), 并給出結(jié)果, 不符合特殊狀態(tài)則正常顯示搶答者編號。這里特殊狀態(tài)是:主持人有清零信號時,結(jié)果是均無顯示。在主持人沒發(fā)搶答指令前,如有搶答信號,其結(jié)果是發(fā)出報警。否則,正常搶答時,哪組先搶答,對應(yīng)指示燈亮,并且數(shù)碼管顯示其編號,其他組搶答無效。在結(jié)構(gòu)體里,我們只需將上述的邏輯關(guān)系描述清楚就可以了。

      結(jié)構(gòu)體部分的VHDL代碼如下:

      architecture ab of qiangda is

      signal tmp :std_logic_vector(3 downto 0);

      signal tag: std_logic; --設(shè)置鎖存信號

      signal D :std_logic_vector(3 downto 0);

      begin

      tmp<=a&b&c&d;

      process(K, G, a,b,c,d)

      begin

      if K=‘1 then -- 清零

      D<="0000";

      false<='0';

      tag<='0';

      elsif G=‘0 then --提前搶答警報

      if (tmp/=“0000”) then

      false<='1'; end if;

      Else --開始搶答

      false<=‘0; --警報信號清零

      if tag=‘0 then --判斷是否有人搶答成功

      if tmp=“1000” then --A搶答成功

      D<=“1000”; --顯示搶答成功

      tag<=‘1; --搶答成功,鎖存此狀態(tài)

      elsif tmp="0100" then

      D<="0100";

      tag<='1';

      elsif tmp="0010" then

      D<="0010";

      tag<='1';

      elsif tmp="0001" then

      D<="0001";

      tag<='1';

      end if;

      end if;

      end if;

      q<= D;

      end process;

      process(D) --顯示搶答成功者號碼

      begin

      case D is

      when “0000” =>Dout<= “0111111”;

      when “0001” =>Dout<= “0000110”;

      when “0010” =>Dout<= “1011011”;

      when “0100” =>Dout<= “1001111”;

      when “1000” =>Dout<= “1100110”;

      when others =>Dout<= “0000000”;

      end case;

      end process;

      end ab;

      3.3 項目的編譯

      完成程序輸入后,可開始對其進(jìn)行編譯。在“MAX+plus II”菜單中選擇“Compiler”,即可打開編譯器。選擇“Start” 就可開始編譯。編譯的目的是驗證設(shè)計結(jié)果是否符合規(guī)則, 若有錯誤,編譯器將停止編譯,并在下面的信息框中給出錯誤信息,雙擊錯誤信息條,一般可給出錯誤之處。將錯誤排除后再編譯。編譯成功后可生成時序模擬文件及器件編程文件。

      3.4 項目的校驗

      編輯的程序文件編譯成功后即可進(jìn)行時序仿真和定時分析,定時分析是利用項目管理窗口下的定時分析器分析當(dāng)前設(shè)計項目的性能。時序仿真通過建立波形文件觀察仿真波形是否符合要求以檢驗設(shè)計項目的邏輯是否正確,是進(jìn)一步對設(shè)計功能實現(xiàn)狀況的檢驗,仿真過程不涉及具體的硬件特性,但它是接近真實器件運行特性的仿真,仿真精度非常高。

      3.5 器件的編程或配置

      通過仿真和定時分析后,如符合系統(tǒng)要求則可以通過編程器或下載電纜將設(shè)計下載到PLD器件中。對CPLD結(jié)構(gòu)的器件下載稱為編程,對FPGA結(jié)構(gòu)的器件下載常稱為配置。下載結(jié)束后,PLD器件即是一個符合邏輯要求的四路搶答器,就可以進(jìn)行硬件測試和驗證了。

      4 結(jié)束語

      本文通過簡易四路搶答器的設(shè)計實例, 說明了利用VHDL 語言設(shè)計數(shù)字系統(tǒng)的基本方法和流程。這是一個以軟件設(shè)計為主, 可以將整個數(shù)字系統(tǒng)實現(xiàn)在一個可編程芯片上的設(shè)計, 并且在多個步驟中都可以進(jìn)行檢測排除錯誤,相對于傳統(tǒng)的數(shù)字系統(tǒng)設(shè)計方法而言,其優(yōu)越性已經(jīng)越來越明顯,而且這種技術(shù)已滲透到各行各業(yè),對于復(fù)雜的數(shù)字系統(tǒng)設(shè)計,我們應(yīng)優(yōu)先考慮此種設(shè)計方法。

      參考文獻(xiàn):

      [1] 萬春迎. 基于VHDL的數(shù)字時鐘設(shè)計[J]. 科技信息,2008(12).

      [2] 詹仙寧.VHDL開發(fā)精解與實例剖析[M].北京:電子工業(yè)出版社,2009.

      [3] 于潤偉.EDA基礎(chǔ)與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2010.

      [4] 關(guān)吉.基于VHDL 語言的交通控制器設(shè)計[J]. 電腦知識與技術(shù),2014(10).

      [5] 郭勇.EDA技術(shù)基礎(chǔ)[M] .2版.北京.機(jī)械工業(yè)出版社,2012.9.

      猜你喜歡
      EDA技術(shù)搶答器設(shè)計
      瞞天過?!律O(shè)計萌到家
      4路搶答器的設(shè)計與研發(fā)
      設(shè)計秀
      有種設(shè)計叫而專
      基于STC12C5A60S2單片機(jī)的6路搶答器設(shè)計
      EDA技術(shù)在數(shù)字電子技術(shù)教學(xué)中的探索
      多路競賽搶答器電路的仿真設(shè)計
      設(shè)計之味
      彭泽县| 扎赉特旗| 宁波市| 昆山市| 福鼎市| 铁岭县| 廉江市| 灌南县| 临沂市| 曲阳县| 桃江县| 辽阳市| 唐河县| 长岭县| 大邑县| 铁力市| 凌云县| 临安市| 屏东市| 阿尔山市| 霍城县| 响水县| 宁明县| 同江市| 密云县| 行唐县| 阜新| 鸡西市| 浦北县| 沙田区| 梨树县| 柯坪县| 苏尼特右旗| 安阳市| 德阳市| 资兴市| 湘潭市| 安乡县| 沙田区| 抚松县| 漯河市|