<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > VHDL設計中信號與變量問題的研究

          VHDL設計中信號與變量問題的研究

          作者: 時間:2010-04-17 來源:網(wǎng)絡 收藏

            在程序中,可以充分利用的系統(tǒng)默認值,來靈活實現(xiàn)目標。本文從應用的角度舉例說明了的區(qū)別,以及正確的使用方法,并介紹了為賦予初始值的技巧。

          本文引用地址:http://www.ex-cimer.com/article/151920.htm

            概述

            隨著集成電路技術的發(fā)展,用傳統(tǒng)的方法進行芯片或系統(tǒng)設計已不能滿足要求,迫切需要提高設計效率,因此能大大降低設計難度的設計方法被越來越廣泛地采用。用VHDL語言設計系統(tǒng)的主要方法是:設計者根據(jù)VHDL的語法規(guī)則,對系統(tǒng)目標的邏輯行為進行描述,然后通過綜合工具進行電路結(jié)構的綜合、編譯、優(yōu)化,通過仿真工具進行邏輯功能仿真和系統(tǒng)時延的仿真,最后把設計的程序下載到芯片中,成功地實現(xiàn)系統(tǒng)功能。

            在VHDL設計中,最常用的數(shù)據(jù)對象主要有三種:信號(signal)、變量(variable)和常數(shù)(constant)。信號是電子電路內(nèi)部硬件連接的抽象。它除了沒有數(shù)據(jù)流動方向說明以外,其他性質(zhì)幾乎和“端口”一樣;信號是一個全局量,它可以用來進行進程之間的通信。變量只能在進程語句、函數(shù)語句和過程語句結(jié)構中使用,是一個局部量。

            在VHDL語言中,對信號賦值是按仿真時間進行的,到了規(guī)定的仿真時間才進行賦值,而變量的賦值是立即發(fā)生的。下面的例子是從賦初值的角度說明信號與變量的這種區(qū)別的。

            例如用VHDL語言實現(xiàn)初值為A的十六進制的16個數(shù)的循環(huán)顯示。

            對于如此的設計要求,如果用變量實現(xiàn),則VHDL程序如下。

            library ieee;

            use ieee.std_logic_1164.all;

            use ieee.std_logic_unsigned.all;

            entity sevenauto is

            port(clk:in std_logic;

            y:out std_logic_vector(6 downto 0));

            end sevenauto;

            architecture behave of sevenauto is

            begin

            process(clk)

            variable count:std_logic_vector(3 downto 0);

            variable init:std_logic;

            begin

            if (clk''event) and (clk=''1'') then

            if (init = ''0'') then

            count:= 1001;

            init:=''1'

            end if;

            count:=count+1;

            case count is

            when 0000=>y=1111110;

            when 0001=>y=0110000;

            when X2=>y=1101101;

            when X3=>y=1111001;

            when X4=>y=0110011;

            when X5=>y=1011011;

            when X6=>y=1011111;

            when X7=>y=1110000;

            when X8=>y=1111111;

            when X9=>y=1111011;

            when XA=>y=1110111;

            when XB=>y=0011111;

            when XC=>y=1001110;

            when 1101=>y=0111101;

            when 1110=>y=1001111;

            when 1111=>y=1000111;

            when thers=>y=XXXXXXX;

            end case;

            end if;

            end process;

            end behave;


          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();