欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      EDA期末總結(jié)7

      時間:2019-05-12 12:34:57下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了多篇相關(guān)的《EDA期末總結(jié)7》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《EDA期末總結(jié)7》。

      第一篇:EDA期末總結(jié)7

      1章 PORT DOWNTO 0);(D:INSTD_LOGIC_VECTOR(11DOWNTO 0);

      Q : OUT STD_LOGIC_VECTOR(11 DOWNTO 0));

      1、常用的硬件描述語言有VHDL、Verilog、ABEL

      CLK ,STATUS : IN STD_LOGIC;END AD574A;

      2、VHDL自頂向下的設(shè)計流程:

      LOCK0 : OUT STD_LOGIC;ARCHITECTURE behav OF AD574A IS 1.設(shè)計說明書2.建立VHDL行為模型3.VHDL行為仿真4.VHDL-RTL

      CS,A0,RC,K12X8 : OUT STD_LOGIC;SIGNAL current_state, next_state: STD_LOGIC_VECTOR(4 DOWNTO 0);級建模 Q:OUTSTD_LOGIC_VECTOR(11DOWNTO 0));

      CONSTANT st0 : STD_LOGIC_VECTOR(4 DOWNTO 0):= “11100”;5.前端功能仿真6.邏輯綜合7.測試向量生成8.功能仿真9.結(jié)END AD574;

      CONSTANT st1 : STD_LOGIC_VECTOR(4 DOWNTO 0):= “00001”;構(gòu)綜合10.門級時序仿真11.硬件測試12.設(shè)計完成 ARCHITECTURE behav OF AD574 IS

      CONSTANT st2 : STD_LOGIC_VECTOR(4 DOWNTO 0):= “00000”;2章 TYPE states IS(st0, st1, st2, st3,st4);

      CONSTANT st3 : STD_LOGIC_VECTOR(4 DOWNTO 0):= “00100”;SIGNALcurrent_state,next_state:states :=st0;

      CONSTANT st4 : STD_LOGIC_VECTOR(4 DOWNTO 0):= “00110”;1.一般ASIC設(shè)計的流程: SIGNAL REGL:STD_LOGIC_VECTOR(11DOWNTO 0);

      SIGNAL REGL : STD_LOGIC_VECTOR(11 DOWNTO 0);系統(tǒng)規(guī)格說明:系統(tǒng)劃分:邏輯設(shè)計與綜合:綜合后仿真:版圖設(shè)SIGNAL LOCK : STD_LOGIC;

      SIGNAL LK

      : STD_LOGIC;計:版圖驗證:參數(shù)提取與后仿真:制版、流片:芯片測試 BEGIN BEGIN

      2、常用EDA工具:

      K12X8 <= '1';

      LOCK0 <= LOCK;

      COM1: PROCESS(current_state,STATUS)設(shè)計輸入編輯器:HDL綜合器:仿真器:適配器(或布局布線器):COM1: PROCESS(current_state,STATUS)

      BEGIN 下載器 BEGIN

      CASE current_state IS

      3、IP核:軟IP硬IP固IP

      CASE current_state IS

      WHEN st0 => next_state <= st1;3章

      WHEN st0 => next_state <= st1;

      WHEN st1 => next_state <= st2;

      WHEN st1 => next_state <= st2;

      WHEN st2 => IF(STATUS='1')THEN next_state <= st2;

      1、CPLD和FPGA的主要區(qū)別:

      WHEN st2 =>IF(STATUS='1')THENnext state <= st2;

      ELSE next_state <= st3;

      結(jié)構(gòu)上的不同:集成度的不同:CPLD:500~50000門;FPGA:1K~

      ELSE next_state <= st3;

      END IF;10M門:應(yīng)用范圍不同:CPLD邏輯能力強而寄存器少(1K左右),END IF;

      WHEN st3=> next_state <= st4;

      適用于控制密集型系統(tǒng);FPGA邏輯能力較弱但寄存器多(100多K),WHEN st3 => next_state <= st4;

      WHEN st4=> next_state <= st0;適用于數(shù)據(jù)密集型系統(tǒng)。

      WHEN st4 => next_state <= st0;

      WHEN OTHERS => next_state <= st0;

      使用方法不同

      2、FPGA和CPLD的選用(1)CPLD的選用: 邏輯密集型:中小規(guī)模(1000~50000):免費軟件支持;編程數(shù)據(jù)不丟失,電路簡單;ISP特性,編程加密;布線延遲固定,時序特性穩(wěn)定;(2)FPGA選用: 數(shù)據(jù)密集型;大規(guī)模設(shè)計(5000~數(shù)百萬門);SOC設(shè)計:ASIC的設(shè)計仿真:布線靈活,但時序特性不穩(wěn)定;需用專用的ROM進行數(shù)據(jù)配置 4章

      1、EDA綜合工具提供的數(shù)據(jù)類型為布爾型(Boolean)、位型(Bit)、位矢量型(Bit-Vector)和整數(shù)型(Interger)。

      2、VHDL語言描述結(jié)構(gòu)體功能有3種方法:行為描述法:數(shù)據(jù)流描述法;結(jié)構(gòu)描述法

      3、VHDL的庫:STD庫和WORK庫:IEEE庫

      4、clock’EVENT and clock=‘1檢測上升沿;clock’EVENT and clock=‘0’檢測下降沿。

      5、簡述實體、端口概念,端口種類及INPUT與BUFFER的異同。以關(guān)鍵詞ENTITY引導(dǎo),END ENTITY....結(jié)束的語句部分成為實體。端口種類4種:IN、OUT、INOUT、BUFFER。INOUT定義的通道確定為輸入輸出雙向端口;、BUFFER在需要輸入數(shù)據(jù)是時,只允許內(nèi)不回讀輸出的信號。

      6、結(jié)構(gòu)體 以關(guān)鍵詞ARCHITECTURE引導(dǎo),END 結(jié)束的語句部分成為結(jié)構(gòu)體。

      7、端口: INOUT定義的通道為輸入輸出雙向端口,可以由外向內(nèi)或由內(nèi)向外傳輸數(shù)據(jù),而BUFFER定義的通道雖然也是輸入輸出端口,但它回讀的信號不能從外部輸入,而是由內(nèi)部產(chǎn)生,向外輸出的信號。IN定義的通道為單向只讀模式,規(guī)定數(shù)據(jù)只能通過此端口被讀入實體中 OUT定義的通道為單向輸出模式,規(guī)定數(shù)據(jù)只能通過此端口從實體向外流出,或者說可以將實體中的數(shù)據(jù)向此端口賦值。INOUT定義的通道確定為輸入輸出雙向端口,可以由外向內(nèi)或由內(nèi)向外傳輸數(shù)據(jù)。6章

      1、說明用原理圖輸入方法設(shè)計電路的詳細流程 1.為一項工程設(shè)計建立文件夾 2.輸入設(shè)計項目和存盤 3.將設(shè)計項目設(shè)置成工程文件 4.選擇目標(biāo)器件并編譯 5時序仿真和包裝入庫 6.設(shè)計頂層文件 7章

      1、為什么要使用狀態(tài)機 有限狀態(tài)機克服了純硬件數(shù)字系統(tǒng)順序方式控制不靈活的缺點。狀態(tài)機的結(jié)構(gòu)模式相對簡單。狀態(tài)機容易構(gòu)成性能良好的同步時序邏輯模塊。狀態(tài)機的VHDL表述豐富多樣。在高速運算和控制方面,狀態(tài)機更有其巨大的優(yōu)勢。就可靠性而言,狀態(tài)機的優(yōu)勢也是十分明顯的。

      2、時序進程將次態(tài)信號送到現(xiàn)態(tài)信號

      3、Moore型輸出僅與當(dāng)前狀態(tài)有關(guān),Mealy型輸出是當(dāng)前狀態(tài)與所有輸入信號 FSM:s_machine current_state clkPROCESSPROCESSREGCOMcomb_outputsreset next_statestate_inputs LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY s_machine IS

      PORT(clk,reset

      : IN STD_LOGIC;

      state_inputs : IN STD_LOGIC_VECTOR(0 TO 1);

      comb_outputs : OUT INTEGER RANGE 0 TO 15);END s_machine;ARCHITECTURE behv OF s_machine IS

      TYPE FSM_ST IS(s0, s1, s2, s3);

      SIGNAL current_state, next_state: FSM_ST;BEGIN REG: PROCESS(reset,clk)

      BEGIN

      IF reset = '1' THEN

      current_state <= s0;

      ELSIF clk='1' AND clk'EVENT THEN

      current_state <= next_state;

      END IF;

      END PROCESS;

      COM:PROCESS(current_state, state_Inputs)BEGIN

      CASE current_state IS

      WHEN s0 => comb_outputs<= 5;

      IF state_inputs = “00” THEN next_state<=s0;

      ELSE next_state<=s1;

      END IF;

      WHEN s1 => comb_outputs<= 8;

      IF state_inputs = “00” THEN next_state<=s1;

      ELSE next_state<=s2;

      END IF;

      WHEN s2 =>

      comb_outputs<= 12;

      IF state_inputs = “11” THEN next_state <= s0;

      ELSE next_state <= s3;

      END IF;

      WHEN s3 => comb_outputs <= 14;

      IF state_inputs = “11” THEN next_state <= s3;

      ELSE next_state <= s0;

      END IF;

      END case;

      END PROCESS;

      END behv;三進程有限狀態(tài)機 LIBRARY IEEE;

      USE IEEE.STD_LOGIC_1164.ALL;

      ENTITY AD574 IS

      WHEN OTHERS => next_state <= st0;

      END CASE;END PROCESS COM1;COM2: PROCESS(current_state)BEGIN

      CASE current_state IS

      WHEN st0=>CS<='1';A0<='1';RC<='1';LOCK<='0';WHEN st1=>CS<='0';A0<='0';RC<='0';LOCK<='0';

      WHEN st2=>CS<='0';A0<='0';RC<='0';LOCK<='0';WHEN st3=>CS<='0';A0<='0';RC<='1';LOCK<='0';

      WHEN st4=>CS<='0';A0<='0';RC<='1';LOCK<='1';

      WHEN OTHERS=>CS<='1';A0<='1';RC<='1';LOCK<='0';

      END CASE;END PROCESS COM2;REG: PROCESS(CLK)

      BEGIN IF(CLK'EVENT AND CLK='1')THEN current_state <= next_state;END IF;END PROCESS REG;LATCH1 : PROCESS(LOCK)BEGIN IF LOCK='1' AND LOCK'EVENT THEN REGL <= D;END IF;END PROCESS;

      Q <= REGL;

      END behav;單進程Moore型有限狀態(tài)機 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MOORE1 IS PORT(DATAIN:INSTD_LOGIC_VECTOR(1 DOWNTO 0);

      CLK,RST : IN STD_LOGIC;

      Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END MOORE1;ARCHITECTURE behav OF MOORE1 IS

      TYPE ST_TYPE IS(ST0, ST1, ST2, ST3,ST4);

      SIGNAL C_ST : ST_TYPE;

      BEGIN

      PROCESS(CLK,RST)

      BEGIN

      IF RST ='1' THEN C_ST <= ST0;Q<= “0000”;

      ELSIF CLK'EVENT AND CLK='1' THEN

      CASE C_ST IS

      WHEN ST0 => IF DATAIN =“10” THEN C_ST <= ST1;

      ELSE C_ST <= ST0;END IF;

      Q <= “1001”;WHEN ST1 => IF DATAIN =“11” THEN C_ST <= ST2;

      ELSE C_ST <= ST1;END IF;

      Q <= “0101”;WHEN ST2 => IF DATAIN =“01” THEN C_ST <= ST3;

      ELSE C_ST <= ST0;END IF;

      Q <= “1100”;WHEN ST3 => IF DATAIN =“00” THEN C_ST <= ST4;

      ELSE C_ST <= ST2;END IF;

      Q <= “0010”;WHEN ST4 => IF DATAIN =“11” THEN C_ST <= ST0;

      ELSE C_ST <= ST3;END IF;

      Q <= “1001”;WHEN OTHERS => C_ST <= ST0;

      END CASE;

      END IF;

      END PROCESS;END behav;2進程Mealy型有限狀態(tài)機的設(shè)計

      LIBRARY IEEE;

      USE IEEE.STD_LOGIC_1164.ALL;ENTITY MEALY1 IS PORT(CLK,DATAIN,RESET:IN STD_LOGIC;

      Q:OUTSTD_LOGIC_VECTOR(4DOWNTO 0));END MEALY1;ARCHITECTURE behav OF MEALY1 IS

      TYPE states IS(st0, st1, st2, st3,st4);

      SIGNAL STX : states;

      BEGIN

      COMREG : PROCESS(CLK,RESET)BEGIN

      IF RESET ='1' THEN STX <= ST0;

      ELSIF CLK'EVENT AND CLK = '1' THEN CASE STX IS

      WHEN st0 => IF DATAIN = '1' THEN STX <= st1;END IF;

      WHEN st1 => IF DATAIN = '0' THEN STX <= st2;END IF;

      WHEN st2 => IF DATAIN = '1' THEN STX <= st3;END IF;

      WHEN st3 => IF DATAIN = '0' THEN STX <= st4;END IF;

      WHEN st4 => IF DATAIN = '1' THEN STX <= st0;END IF;

      WHEN OTHERS => STX <= st0;

      END CASE;

      END IF;END PROCESS COMREG;COM1: PROCESS(STX,DATAIN)BEGIN

      CASE STX IS

      WHEN st0 => IF DATAIN = '1' THEN Q <= “10000”;

      ELSE Q<=“01010”;END IF;

      WHEN st1 => IF DATAIN = '0' THEN Q <= “10111”;

      ELSE Q<=“10100”;END IF;

      WHEN st2 => IF DATAIN = '1' THEN Q <= “10101”;

      ELSE Q<=“10011”;END IF;

      WHEN st3 => IF DATAIN = '0' THEN Q <= “11011”;

      ELSE Q<=“01001”;END IF;

      WHEN st4 => IF DATAIN = '1' THEN Q <= “11101”;

      ELSE Q<=“01101”;END IF;

      WHEN OTHERS => Q<=“00000”;

      END CASE;END PROCESS COM1;END behav;狀態(tài)編碼

      LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY AD574A IS

      PORT(D : IN STD_LOGIC_VECTOR(11 DOWNTO 0);

      CLK ,STATUS : IN STD_LOGIC;

      OUT4 : OUT STD_LOGIC_VECTOR(3

      END CASE;

      OUT4 <= current_state(4 DOWNTO 1);END PROCESS COM1;

      REG: PROCESS(CLK)

      BEGIN

      IF(CLK'EVENT AND CLK='1')THEN current_state <= next_state;

      END IF;

      END PROCESS REG;

      LK <= current_state(1);

      LATCH1 : PROCESS(LK)

      BEGIN

      IF LK='1' AND LK'EVENT THEN

      REGL <= D;

      END IF;

      END PROCESS;

      Q <= REGL;

      END behav;

      9章

      1、VHDL有那幾種基本的順序語句? 賦值語句;流程控制語句;等待語句;子程序調(diào)用語句;返回語句;空操作語句。

      2、什么叫順序語句,它的適用范圍是什么?

      執(zhí)行順序與它們的書寫順序基本一致的語句叫順序語句,順序語句只能出現(xiàn)在進程和子程序中,子程序包括函數(shù)和過程。3、VHDL并行語句幾種? 并行信號賦值語句;進程語句;塊語句;條件信號賦值語句;元件例化語句;生成語句;并行過程調(diào)用語句。

      4、什么叫并行語句? 在結(jié)構(gòu)體的執(zhí)行是同步進行的,或者說是并行運行的,其執(zhí)行方式與書寫的順序無關(guān)。

      5、VHDL中具有屬性的項目: 類型、子類型、過程、函數(shù)、信號、變量、常量、實體、結(jié)構(gòu)體、配置、程序包、元件和語句標(biāo)號等。

      6、綜合器支持的屬性有: LEFT、RIGHT、HIGH、LOW、RANGE、REVERS RANGE、LENGTH、EVENT及STABLE。

      端口模式:IN單向只讀

      OUT單向輸出

      INOUT輸入輸出雙向

      BUFFER內(nèi)部回讀輸出信號,反饋 數(shù)據(jù)類型:INTEGER整數(shù)數(shù)據(jù)

      BOOLEAN布爾數(shù)據(jù)

      STD_LOGIC標(biāo)準(zhǔn)邏輯位數(shù)據(jù)

      BIT位數(shù)據(jù) 邏輯操作符:AND與

      OR或

      NAND與非

      NOR或非

      XOR異或

      XNOR同或

      NOT非 數(shù)據(jù)對象:SIGNAL信號

      VARIABLE變量

      CONSTANT常量

      7、for_loop語句實現(xiàn)一個16位的串行并出移位寄存器

      Library IEEE;Use IEEE.std_logic_1164.all;Use IEEE.std_logic_unsigned.all;Use IEEE.std_logic_arith.all;Entity chuan_bing is port(load : in std_logic;

      d_in : in std_logic;

      d_out:buffer std_logic_vector(15 downto 0);clk :in std_logic);

      end chuan_bing;architecture arch of chuan_bing is signal l: std_logic_vector(15 downto 0);

      begin process(clk)begin

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

      l(0)<=d_in;

      if(load='0')then

      for i in 14 downto 0 loop

      l(i+1)<=l(i);

      end loop;

      else

      d_out<=l;

      end if;end if;end process;end arch;

      第二篇:EDA期末復(fù)習(xí)總結(jié)1

      面向FPGA的開發(fā)流程

      綜合:由高層次描述自動轉(zhuǎn)換為低層次描述的過程。是EDA技術(shù)的核心。

      綜合器:能夠自動將一種設(shè)計表示形式向另一種設(shè)計表示形式轉(zhuǎn)換的計算機程序。Xilinx公司推出FPGA;Altera公司推出EPLD,Lattice公司提出CPLD和ISP。

      VHDL程序的基本結(jié)構(gòu):庫、程序包,實體,結(jié)構(gòu)體,進程,配置。VHDL的本質(zhì):并行語句。

      不完整IF語句形成時序邏輯電路,完整IF語句形成組合邏輯電路。

      常用邏輯門符號與現(xiàn)有國標(biāo)符號的對照:

      第三章VHDL的基礎(chǔ)

      3.1 VHDL基本語法

      實體:描述器件的端口構(gòu)成及信號端口的基本性質(zhì)。表達式:entity e_name is port(p_name:port_m data_type;

      ??

      p_namei:port_mi data_type); end entity e_name;

      結(jié)構(gòu)體:描述電路器件的內(nèi)部邏輯功能和電路結(jié)構(gòu)。

      表達式:architecture arch_name of e_name is [說明語句] ??定義或說明數(shù)據(jù)對象、數(shù)據(jù)類型、元件調(diào)用聲明 begin(功能表述語句)end architecture arch_name;

      一個可綜合的、完整的VHDL程序結(jié)構(gòu)必須包含實體和結(jié)構(gòu)體兩個最基本的語言結(jié)構(gòu)。把一個完整的可綜合的VHDL程序設(shè)計稱為設(shè)計實體,而其程序代碼常被稱為VHDL的RTL描述。

      4種端口模式:IN,OUT,INOUT,BUFFER。

      4種數(shù)據(jù)類型:integer(整數(shù)),boolean(邏輯),std_logic,bit。bit的取值范圍是‘1’和‘0’,可以參與邏輯運算或算術(shù)運算,其結(jié)果仍是位的數(shù)據(jù)類型。

      賦值符號“<=”:

      例如y<=a,表示輸入端口a的數(shù)據(jù)向輸出端口y傳輸,或信號a向信號y賦值。賦值操作并非立即發(fā)生,而要經(jīng)歷一個模擬器的最小分辨時間δ,δ可以看作實際電路存在的固有延時量?!?=”兩邊的信號的數(shù)據(jù)類型必須一致。

      數(shù)據(jù)比較符號“=”:

      例如s=‘0’,“=”沒有賦值的含義,只是一種數(shù)據(jù)比較符號。S=‘0’輸出結(jié)果的數(shù)據(jù)類型是布爾數(shù)據(jù)類型BOOLEAN,BOOLEAN數(shù)據(jù)類型取值是TRUE(真)和FALSE(偽),VHDL仿真器和綜合器分別用‘1’和‘0’表達TRUE和FALSE,布爾數(shù)據(jù)不是數(shù)值,只能用于邏輯操作或條件判斷。

      7種邏輯操作符:and與、or或、not非、nand與非、nor或非、xor異或、xnor同或。

      邏輯操作符所要求的操作數(shù)的數(shù)據(jù)類型有3種,即bit、boolean和std_logic。

      條件語句:用IF_THEN_ELSE表示VHDL順序語句。

      IF語句表達式:if 條件句 then 順序語句 else 順序語句 end if

      WHEN_ELSE 條件信號賦值語句:一種并行賦值語句

      表達式:賦值目標(biāo)<=表達式 WHEN 賦值條件 ELSE 例:z<= a when p1=’1’ else

      表達式 WHEN 賦值條件 ELSE b when p2=’1’ else

      ? c;

      表達式; 條件信號賦值語句的第一句具有最高賦值優(yōu)先。

      進程語句:由Process引導(dǎo)的語句: 表達式:Process(a,b,s)

      在VHDL中,所有合法的順序語句都必須放入進程語句中。在結(jié)構(gòu)體中,可以有很多進程語句,所有的進程語句都是并行語句,而由任一進程Process引導(dǎo)的語句結(jié)構(gòu)屬于順序語句。進程語句定義的是變量。描述數(shù)字電路時,推薦使用Process語句。

      文件取名和存盤

      文件名可以由設(shè)計者任意給定,但文件后綴擴展名必須是“.vhd”,建議程序的文件名盡可能與該程序的實體名一致,文件名原則上不分大小寫,但推薦用小寫。

      3.2 時序電路描述

      VHDL主要通過對時序器件功能和邏輯行為的描述,而非結(jié)構(gòu)上的描述使得計算機綜合出符合要求的時序電路。

      標(biāo)準(zhǔn)邏輯位數(shù)據(jù)類型STD_LOGIC:

      STD_LOGIC定義:TYPE STD_LOGIC IS(‘U’,‘X’,‘0’,‘1’,‘Z’,‘W’,‘L’,‘H’,‘-’)

      使用庫和程序包的一般定義表達式: LIBRARY <設(shè)計庫名>;

      USE <設(shè)計庫名>.<程序包名>.ALL;

      信號定義:signal q1:std_logic 數(shù)據(jù)對象:信號(signal)、變量(variable)、常量(constant)

      信號屬性函數(shù):EVENT。所謂信號屬性函數(shù)是用來獲得信號行為信息的函數(shù)。測定信號的跳變情況:<信號名>’EVENT 上升沿檢測表式為:<信號名>’EVENT AND <信號名>=’1’ 時鐘上升沿檢測表式為:clk’event and clk=‘1’ 確保clk的變化是一次上升沿的變化:

      if clk'event and(clk='1')and(clk'last_value='0')if clk='1' and clk'last_value='0' 3.3

      ※CASE語句:

      case語句屬于順序語句,因此必須放在進程語句中使用。

      一般表達式:case <表達式> is when <選擇值或標(biāo)識符>=><順序語句>;?;<順序語句>;when <選擇值或標(biāo)識符>=><順序語句>;?;<順序語句>;?

      when others=><順序語句>;--一般用null,表示不作任何操作。end case;

      并置操作符&:表示將操作數(shù)或是數(shù)組合并起來形成新的數(shù)組。如abc<=a&b。

      例化語句:

      第一部分是對一個現(xiàn)成的設(shè)計實體定義為一個元件,語句的功能是對待調(diào)用的元件作出調(diào)用聲明,其表達式為:component 元件名

      port(端口名表);

      end component 第二部分則是此元件與當(dāng)前設(shè)計實體中元件間及端口的連接說明,語句的表達式為:

      例化名:元件名port map([端口名=>]連接端口名,?);

      相關(guān)語法說明:

      1、變量

      variable cqi:std_logic_vector(3 downto 0);變量與信號的區(qū)別: 信號:全局量

      用于architecture、package、entity中 賦值符號為<= 變量:局部量

      用于process、function、procedure中 賦值符號為:=

      2、省略賦值操作符(others=>x)

      全加器的VHDL描述(書P55)

      3.6 數(shù)據(jù)對象

      數(shù)據(jù)對象: 常量(constant):代表數(shù)字電路中電源、地和恒定的邏輯值。

      常數(shù)定義語句:

      變量(variable):代表暫存某些值的載體,常用于描述算法。

      變量定義語句:

      信號(signal):代表物理設(shè)計中的某硬件連接線,包括輸入輸出端口。

      信號定義語句:

      信號賦值語句:

      變量與信號的差異(總結(jié)): 1)賦值方式的不同:

      變量:= 表達式;

      信號 < = 表達式;

      2)硬件實現(xiàn)的功能不同:

      信號代表電路單元、功能模塊間的互聯(lián),代表實際的硬件連線;

      變量代表電路單元內(nèi)部的操作,代表暫存的臨時數(shù)據(jù)。

      3)有效范圍的不同:

      信號:程序包、實體、結(jié)構(gòu)體;全局量。

      變量:進程、子程序;局部量。4)賦值行為的不同:

      信號賦值延遲更新數(shù)值、時序電路;

      變量賦值立即更新數(shù)值、組合電路。

      3.7 IF語句概述

      ※IF語句:

      3.8 進程語句歸納

      Process語句結(jié)構(gòu)的一般表達格式如下:

      [進程標(biāo)號:] process [(敏感信號參數(shù)表)] [is] [進程說明部分](定義該進程所需的局部數(shù)據(jù)環(huán)境)begin 順序描述語句(描述該進程的行為)end process [進程標(biāo)號];

      第四章QuartusⅡ的使用

      建立工作庫文件夾和編輯設(shè)計文件,創(chuàng)建工程,編譯前設(shè)置,全程編譯,時序仿真,應(yīng)用RTL電路圖觀察器,引腳鎖定,配置文件下載,編程配置器件,Signal TapⅡ?qū)崟r測試。(文本編輯,功能仿真,邏輯綜合,布局布線,時序仿真,編程下載)

      第五章VHDL狀態(tài)機

      用戶自定義數(shù)據(jù)類型是用類型定義語句TYPE和子類型定義語句SUBTYOPE實現(xiàn)的

      5.1 狀態(tài)機設(shè)計相關(guān)語句

      TYPE類型定義語句:

      VHDL中的枚舉數(shù)據(jù)類型是一種特殊的數(shù)據(jù)類型,它們是用文字符號來表示一組實際的二進制數(shù)。設(shè)計者在狀態(tài)機的設(shè)計中,為了利于閱讀、編譯和VHDL綜合器的優(yōu)化,往往將表征狀態(tài)的二進制數(shù)組用文字符號來代替,即所謂的狀態(tài)符號化。

      枚舉類型也可以直接用數(shù)值來定義,但必須使用單引號。枚舉數(shù)據(jù),在綜合過程中,都將轉(zhuǎn)化為二進制代碼。編碼順序是默認(rèn)的。編碼數(shù)值:一般將第一個枚舉量編碼為‘0’或“0000”,以后依次加1。編碼的位矢量長度根據(jù)實際情況決定。

      子類型subtype是由type所定義的原數(shù)據(jù)類型的一個子集,它滿足原數(shù)據(jù)類型的所有約束條件,原數(shù)據(jù)類型稱為基本數(shù)據(jù)類型。子類型并沒有定義新的數(shù)據(jù)類型。

      子類型subtype的語句格式:

      5.1.3

      狀態(tài)機的結(jié)構(gòu)

      最一般最常用的狀態(tài)機通常包括:說明部分,主控時序進程,主控組合進程,輔助進程。

      現(xiàn)態(tài)信號current_state,次態(tài)信號next_state。

      真值表:

      5.2 Moore狀態(tài)機設(shè)計

      從狀態(tài)機的信號輸出方式上分,有Moore型和Mealy型兩類狀態(tài)機。

      Moore型狀態(tài)機的輸出僅為當(dāng)前狀態(tài)的函數(shù),這類狀態(tài)機在輸入發(fā)生變化時還必須等待時鐘的到來,時鐘使?fàn)顟B(tài)變化時才導(dǎo)致輸出的變化,所以比Mealy機要多等待一個時鐘周期。

      Mealy型狀態(tài)機的輸出是當(dāng)前狀態(tài)和所有輸入信號的函數(shù),它的輸出是在輸入變化后立即發(fā)生的,不依賴時鐘的同步。

      從輸出時序上看,Moore屬于同步輸出狀態(tài)機,而Mealy屬于異步輸出狀態(tài)機。

      摩爾(Moore)型狀態(tài)機的輸出僅與當(dāng)前狀態(tài)有關(guān):

      異步復(fù)位:目的在加電時建立一個初始狀態(tài),并避免非法狀態(tài);

      摩爾(Moore)型狀態(tài)機真值表:

      多進程Moore狀態(tài)機的輸出信號是由組合電路發(fā)出的,所以在一些特定情況下難免出現(xiàn)毛刺現(xiàn)象。如果這些輸出信號用作時鐘信號,極易產(chǎn)生錯誤的操作,需盡力避免。單進程Moore狀態(tài)機較容易構(gòu)成能避免出現(xiàn)毛刺現(xiàn)象的狀態(tài)機。

      5.3 Mealy 狀態(tài)機

      Mealy狀態(tài)機的輸出不僅是當(dāng)前狀態(tài)的函數(shù),也是輸入信號的函數(shù)。

      Mealy 狀態(tài)機真值表:

      第七章VHDL語句

      7.1 VHDL順序語句(Sequential)

      硬件執(zhí)行:并行執(zhí)行(VHDL本質(zhì))仿真執(zhí)行:順序執(zhí)行、并行執(zhí)行

      分為兩大類:順序(Sequential)描述語句、并行(Concurrent)描述語句

      順序語句只能用在進程與子程序中。可描述組合邏輯、時序邏輯。常用的順序描述語句:賦值語句; if語句;case語句;loop語句; next語句;exit語句;子程序調(diào)用語句; return語句;wait語句;null語句。

      7.1.4 LOOP語句

      LOOP語句就是循環(huán)語句,它可以使所包含的一組順序語句被循環(huán)執(zhí)行,其執(zhí)行次數(shù)可由設(shè)定的循環(huán)參數(shù)決定。

      LOOP語句的常用表達方式有兩種。

      (1)單個LOOP語句,其語法格式如下:

      [LOOP標(biāo)號:] LOOP

      順序語句

      END LOOP [LOOP標(biāo)號:];

      該語句形式的循環(huán)方式需引入其它控制語句(如EXIT語句)才能確定。

      (2)FOR_LOOP語句,其語法格式如下:

      [LOOP標(biāo)號:] FOR 循環(huán)變量,IN 循環(huán)次數(shù)范圍 LOOP 順序語句

      END LOOP [LOOP標(biāo)號:];

      7.1.5 NEXT 語句

      NEXT語句主要用在LOOP語句執(zhí)行中進 行有條件的或無條件的轉(zhuǎn)向控制,它的語句格式有3種。

      (1)第一種語句格式:NEXT;

      當(dāng)LOOP內(nèi)的順序語句執(zhí)行到NEXT語句時,即刻無條件終止當(dāng)前的循環(huán),跳回到本次循環(huán)LOOP語句處,開始下一次循環(huán)。

      (2)第二種語句格式:NEXT LOOP標(biāo)號;

      在當(dāng)有多重LOOP語句嵌套時,可以跳轉(zhuǎn)到指定標(biāo)號的LOOP語句處,重新開始執(zhí)行循環(huán)操作。

      (3)第三種語句格式:NEXT LOOP標(biāo)號 WHEN 條件表達式 ;

      分句“WHEN 條件表達式”是執(zhí)行NEXT語句的條件,如果條件表達式的值為TRUE,則執(zhí)行NEXT語句,進入跳轉(zhuǎn)操作,否則繼續(xù)向下執(zhí)行。但當(dāng)只有單層LOOP循環(huán)語句時,關(guān)鍵詞NEXT和WHEN之間的“LOOP標(biāo)號”可以省去。

      7.1.6 EXIT語句

      EXIT 語句為LOOP語句的內(nèi)部循環(huán)控制語句,將結(jié)束循環(huán)狀態(tài)。

      EXIT;--第一種語句格式 EXIT LOOP標(biāo)號;--第二種語句格式

      EXIT LOOP標(biāo)號 WHEN 條件表達式 ;--第三種語句格式

      NEXT語句與EXIT語句的格式與操作功能非常相似,區(qū)別是: NEXT語句是跳向LOOP語句的起始點,而EXIT語句則是跳向LOOP語句的終點。

      7.1.7 WAIT語句

      在進程中,當(dāng)執(zhí)行到WAIT(等待)語句時,運行程序?qū)⒈粧炱?,直到滿足此語句設(shè)置的結(jié)束掛起條件之后,才重新開始執(zhí)行進程中的程序。

      wait--無限等待

      wait on 信號表--敏感信號等待語句 wait until 條件表達式--條件滿足(可綜合)wait for 時間表達式--時間到,超時等待語句

      1、wait on 語句

      格式:wait on 信號[,信號];

      2、wait until 語句(可綜合)

      格式:wait until 表達式;

      當(dāng)表達式的值為“真”時,進程被啟動,否則進程被掛起。

      三種表達方式:

      wait until 信號 = value;wait until 信號’event and 信號 = value;wait until not(信號’stable)and 信號 = value;時鐘信號 clk 的上升沿的描述:

      wait until clk = ‘1’;

      wait until rising_edge(clk);wait until clk’event and clk = ‘1’;

      wait until not(clk’stable)and clk = ‘1’;

      7.1.9

      return 語句

      return 語句只能用于子程序中,并用來終止一個子程序的執(zhí)行。

      格式:return [表達式];

      分為:1)return ;

      用于過程,只是結(jié)束過程,不返回任何值。2)return 表達式;

      用于函數(shù),并且必須返回一個值。

      7.1.9

      空操作語句

      空操作語句不完成任何操作,它唯一的功能就是使邏輯運行流程跨入下一步語句的執(zhí)行。NULL常用于CASE語句中,為滿足所有可能的條件,利用NULL來表示剩余條件下的操作行為。

      格式: NULL;

      7.2

      并行語句(Concurrent Statements)

      結(jié)構(gòu)體中可綜合的并行描述語句有:

      并行信號賦值語句,條件信號賦值語句,選擇信號賦值語句,進程語句,塊語句,元件例化語句,生成語句,參數(shù)傳遞映射語句,過程調(diào)用語句,端口說明語句。

      使用格式: ARCHITECTURE 結(jié)構(gòu)體名 OF 實體名 IS 說明語句

      BEGIN 并行語句

      END ARCHITECTURE 結(jié)構(gòu)體名

      名詞解釋

      EDA--------電子設(shè)計自動化(Electronic Design Automation)VHDL------超高速集成電路硬件描述語言

      (Very-High-Speed Integrated Circuit HardwareDescription Language)CPLD------復(fù)雜可編程邏輯器件(Complex Programmable Logic Device)EPLD--------電可編程邏輯器件(Electrically Programmable Logic Device)FPGA------現(xiàn)場可編程門陣列(Field-Programmable Gate Array)

      ASIC-------專用集成電路(Application Specific Integrated Circuit)LUT---------顯示查找表(Look-Up-Table)ISP----------在系統(tǒng)可編程技術(shù)(In_System Programmability Programming)

      第三篇:EDA(解答題)EDA期末總結(jié)8

      1章

      ENTITY AD574 IS STD_LOGIC;并行信號賦值語句;進程語句;塊語句;條件信號賦值語句;元件例化語

      PORT(D :IN STD_LOGIC_VECTOR(11

      Q : OUT

      1、常用的硬件描述語言有VHDL、Verilog、ABEL 句;生成語句;并行過程調(diào)用語句。DOWNTO 0);

      STD_LOGIC_VECTOR(4 DOWNTO 0));

      2、VHDL自頂向下的設(shè)計流程:

      4、什么叫并行語句?

      CLK ,STATUS : IN STD_LOGIC;--狀END MEALY1;1.設(shè)計說明書2.建立VHDL行為模型3.VHDL行為仿真4.VHDL-RTL在結(jié)構(gòu)體的執(zhí)行是同步進行的,或者說是并行運行的,其執(zhí)行方式

      ARCHITECTURE behav OF MEALY1 IS 態(tài)機時鐘CLK,AD574狀態(tài)信號STATUS 級建模 與書寫的順序無關(guān)。

      TYPE states IS(st0, st1, st2, st3,st4);

      LOCK0

      : OUT STD_LOGIC;5.前端功能仿真6.邏輯綜合7.測試向量生成8.功能仿真9.結(jié)

      5、VHDL中具有屬性的項目:

      SIGNAL STX : states;

      --內(nèi)部鎖存信號LOCK的測試信號 構(gòu)綜合10.門級時序仿真11.硬件測試12.設(shè)計完成 類型、子類型、過程、函數(shù)、信號、變量、常量、實體、結(jié)構(gòu)體、BEGIN

      CS,A0,RC,K12X8 : OUT STD_LOGIC;2章 配置、程序包、元件和語句標(biāo)號等。

      COMREG : PROCESS(CLK,RESET)--AD574控制信號

      BEGIN--決定轉(zhuǎn)換狀態(tài)的進程 1.一般ASIC設(shè)計的流程:

      6、綜合器支持的屬性有:

      Q : OUT STD_LOGIC_VECTOR(11

      IF RESET ='1' THEN 系統(tǒng)規(guī)格說明:系統(tǒng)劃分:邏輯設(shè)計與綜合:綜合后仿真:版圖設(shè)LEFT、RIGHT、HIGH、LOW、RANGE、REVERS RANGE、LENGTH、DOWNTO 0));--鎖存數(shù)據(jù)輸出

      STX <= ST0;計:版圖驗證:參數(shù)提取與后仿真:制版、流片:芯片測試 EVENT及STABLE。END AD574;

      ELSIF CLK'EVENT AND CLK = '1'

      2、常用EDA工具: ARCHITECTURE behav OF AD574 IS

      THEN 設(shè)計輸入編輯器:HDL綜合器:仿真器:適配器(或布局布線器):TYPE states IS(st0, st1, st2, st3,st4);

      CASE STX IS

      SIGNAL current_state, next_state: 下載器

      WHEN st0 => IF DATAIN = '1' states :=st0;

      3、IP核:軟IP硬IP固IP THEN STX <= st1;END IF;

      SIGNAL REGL : 3章

      WHEN st1 => IF DATAIN = '0' STD_LOGIC_VECTOR(11 DOWNTO 0);

      1、CPLD和FPGA的主要區(qū)別: THEN STX <= st2;END IF;

      SIGNAL LOCK : STD_LOGIC;

      WHEN st2 => IF DATAIN = '1' 結(jié)構(gòu)上的不同:集成度的不同:CPLD:500~50000門;FPGA:1K~10M門:應(yīng)用范圍不同:CPLD邏輯能力強而寄存器少(1K左右),適用于控制密集型系統(tǒng);FPGA邏輯能力較弱但寄存器多(100多K),適用于數(shù)據(jù)密集型系統(tǒng)。使用方法不同

      2、FPGA和CPLD的選用(1)CPLD的選用: 邏輯密集型:中小規(guī)模(1000~50000):免費軟件支持;編程數(shù)據(jù)不丟失,電路簡單;ISP特性,編程加密;布線延遲固定,時序特性穩(wěn)定;(2)FPGA選用: 數(shù)據(jù)密集型;大規(guī)模設(shè)計(5000~數(shù)百萬門);SOC設(shè)計:ASIC的設(shè)計仿真:布線靈活,但時序特性不穩(wěn)定;需用專用的ROM進行數(shù)據(jù)配置 4章

      1、EDA綜合工具提供的數(shù)據(jù)類型為布爾型(Boolean)、位型(Bit)、位矢量型(Bit-Vector)和整數(shù)型(Interger)。

      2、VHDL語言描述結(jié)構(gòu)體功能有3種方法:行為描述法:數(shù)據(jù)流描述法;結(jié)構(gòu)描述法

      3、VHDL的庫:STD庫和WORK庫:IEEE庫

      4、clock’EVENT and clock=‘1檢測上升沿;clock’EVENT and clock=‘0’檢測下降沿。

      5、簡述實體、端口概念,端口種類及INPUT與BUFFER的異同。以關(guān)鍵詞ENTITY引導(dǎo),END ENTITY....結(jié)束的語句部分成為實體。端口種類4種:IN、OUT、INOUT、BUFFER。INOUT定義的通道確定為輸入輸出雙向端口;、BUFFER在需要輸入數(shù)據(jù)是時,只允許內(nèi)不回讀輸出的信號。

      6、結(jié)構(gòu)體 以關(guān)鍵詞ARCHITECTURE引導(dǎo),END 結(jié)束的語句部分成為結(jié)構(gòu)體。

      7、端口: INOUT定義的通道為輸入輸出雙向端口,可以由外向內(nèi)或由內(nèi)向外傳輸數(shù)據(jù),而BUFFER定義的通道雖然也是輸入輸出端口,但它回讀的信號不能從外部輸入,而是由內(nèi)部產(chǎn)生,向外輸出的信號。IN定義的通道為單向只讀模式,規(guī)定數(shù)據(jù)只能通過此端口被讀入實體中 OUT定義的通道為單向輸出模式,規(guī)定數(shù)據(jù)只能通過此端口從實體向外流出,或者說可以將實體中的數(shù)據(jù)向此端口賦值。INOUT定義的通道確定為輸入輸出雙向端口,可以由外向內(nèi)或由內(nèi)向外傳輸數(shù)據(jù)。6章

      1、說明用原理圖輸入方法設(shè)計電路的詳細流程 1.為一項工程設(shè)計建立文件夾 2.輸入設(shè)計項目和存盤 3.將設(shè)計項目設(shè)置成工程文件 4.選擇目標(biāo)器件并編譯 5時序仿真和包裝入庫 6.設(shè)計頂層文件 7章

      1、為什么要使用狀態(tài)機 有限狀態(tài)機克服了純硬件數(shù)字系統(tǒng)順序方式控制不靈活的缺點。狀態(tài)機的結(jié)構(gòu)模式相對簡單。狀態(tài)機容易構(gòu)成性能良好的同步時序邏輯模塊。狀態(tài)機的VHDL表述豐富多樣。在高速運算和控制方面,狀態(tài)機更有其巨大的優(yōu)勢。就可靠性而言,狀態(tài)機的優(yōu)勢也是十分明顯的。

      2、時序進程將次態(tài)信號送到現(xiàn)態(tài)信號

      3、Moore型輸出僅與當(dāng)前狀態(tài)有關(guān),Mealy型輸出是當(dāng)前狀態(tài)與所有輸入信號

      FSM:s_machine current_state clkPROCESSPROCESSREGCOMreset next_statecomb_outputsstate_inputs

      LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY s_machine IS

      PORT(clk,reset

      : IN STD_LOGIC;

      state_inputs : IN STD_LOGIC_VECTOR(0 TO 1);

      comb_outputs : OUT INTEGER RANGE 0 TO 15);END s_machine;ARCHITECTURE behv OF s_machine IS

      TYPE FSM_ST IS(s0, s1, s2, s3);

      SIGNAL current_state, next_state: FSM_ST;BEGIN REG: PROCESS(reset,clk)

      BEGIN

      IF reset = '1' THEN

      current_state <= s0;

      ELSIF clk='1' AND clk'EVENT THEN

      current_state <= next_state;

      END IF;

      END PROCESS;

      COM:PROCESS(current_state, state_Inputs)BEGIN

      CASE current_state IS

      WHEN s0 => comb_outputs<= 5;

      IF state_inputs = “00” THEN next_state<=s0;

      ELSE next_state<=s1;

      END IF;

      WHEN s1 => comb_outputs<= 8;

      IF state_inputs = “00” THEN next_state<=s1;

      ELSE next_state<=s2;

      END IF;

      WHEN s2 =>

      comb_outputs<= 12;

      IF state_inputs = “11” THEN next_state <= s0;

      ELSE next_state <= s3;

      END IF;

      WHEN s3 => comb_outputs <= 14;

      IF state_inputs = “11” THEN next_state <= s3;

      ELSE next_state <= s0;

      END IF;

      END case;

      END PROCESS;

      END behv;

      3、三進程有限狀態(tài)機 LIBRARY IEEE;

      USE IEEE.STD_LOGIC_1164.ALL;BEGIN

      K12X8 <= '1';

      LOCK0 <= LOCK;

      COM1: PROCESS(current_state,STATUS)--決定轉(zhuǎn)換狀態(tài)的進程 BEGIN

      CASE current_state IS

      WHEN st0 => next_state <= st1;

      WHEN st1 => next_state <= st2;

      WHEN st2 => IF(STATUS='1')THEN next_state <= st2;

      ELSE

      next_state <= st3;

      END IF;

      WHEN st3=>

      next_state <= st4;

      WHEN st4=>

      next_state <= st0;

      WHEN OTHERS => next_state <= st0;

      END CASE;

      END PROCESS COM1;COM2: PROCESS(current_state)--輸出控制信號的進程

      BEGIN

      CASE current_state IS

      WHEN st0=> CS<='1';A0<='1';RC<='1';LOCK<='0';--初始化

      WHEN st1=> CS<='0';A0<='0';RC<='0';LOCK<='0';--啟動12位轉(zhuǎn)換

      WHEN st2=> CS<='0';A0<='0';RC<='0';LOCK<='0';--等待轉(zhuǎn)換 WHEN st3=> CS<='0';A0<='0';RC<='1';LOCK<='0';--12位并行輸出有效

      WHEN st4=> CS<='0';A0<='0';RC<='1';LOCK<='1';--鎖存數(shù)據(jù)

      WHEN OTHERS=>CS<='1';A0<='1';RC<='1';LOCK<='0';--其它情況返回初始態(tài)

      END CASE;

      END PROCESS COM2;

      REG: PROCESS(CLK)--時序進程

      BEGIN

      IF(CLK'EVENT AND CLK='1')THEN current_state <= next_state;

      END IF;

      END PROCESS REG;

      LATCH1 : PROCESS(LOCK)--數(shù)據(jù)鎖存器進程

      BEGIN

      IF LOCK='1' AND LOCK'EVENT THEN

      REGL <= D;

      END IF;

      END PROCESS;

      Q <= REGL;END behav;

      5、單進程有限狀態(tài)機 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY MOORE1 IS

      PORT(DATAIN :IN STD_LOGIC_VECTOR(1 DOWNTO 0);

      CLK,RST : IN STD_LOGIC;

      Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END MOORE1;ARCHITECTURE behav OF MOORE1 IS

      TYPE ST_TYPE IS(ST0, ST1, ST2, ST3,ST4);

      SIGNAL C_ST : ST_TYPE;

      BEGIN

      PROCESS(CLK,RST)

      BEGIN

      IF RST ='1' THEN C_ST <= ST0;Q<= “0000”;

      ELSIF CLK'EVENT AND CLK='1' THEN

      CASE C_ST IS

      WHEN ST0 => IF DATAIN =“10” THEN C_ST <= ST1;

      ELSE C_ST <= ST0;END IF;

      Q <= “1001”;

      WHEN ST1 => IF DATAIN =“11” THEN C_ST <= ST2;

      ELSE C_ST <= ST1;END IF;

      Q <= “0101”;

      WHEN ST2 => IF DATAIN =“01” THEN C_ST <= ST3;

      ELSE C_ST <= ST0;END IF;

      Q <= “1100”;

      WHEN ST3 => IF DATAIN =“00” THEN C_ST <= ST4;

      ELSE C_ST <= ST2;END IF;

      Q <= “0010”;

      WHEN ST4 => IF DATAIN =“11” THEN C_ST <= ST0;

      ELSE C_ST <= ST3;END IF;

      Q <= “1001”;

      WHEN OTHERS => C_ST <= ST0;

      END CASE;

      END IF;

      END PROCESS;END behav;

      6、Mealy型有限狀態(tài)機的設(shè)計

      LIBRARY IEEE;

      USE IEEE.STD_LOGIC_1164.ALL;ENTITY MEALY1 IS PORT(CLK ,DATAIN,RESET : IN THEN STX <= st3;END IF;

      WHEN st3=> IF DATAIN = '0' THEN STX <= st4;END IF;

      WHEN st4=> IF DATAIN = '1'

      THEN STX <= st0;END IF;

      WHEN OTHERS => STX <= st0;

      END CASE;

      END IF;

      END PROCESS COMREG;COM1: PROCESS(STX,DATAIN)BEGIN--輸出控制信號的進程

      CASE STX IS

      WHEN st0 => IF DATAIN = '1' THEN

      Q <= “10000”;

      ELSE Q<=“01010”;

      END IF;

      WHEN st1 => IF DATAIN = '0' THEN Q <= “10111”;

      ELSE Q<=“10100”;

      END IF;

      WHEN st2 => IF DATAIN = '1' THEN Q <= “10101”;

      ELSE Q<=“10011”;

      END IF;

      WHEN st3=> IF DATAIN = '0' THEN Q <= “11011”;

      ELSE Q<=“01001”;

      END IF;

      WHEN st4=> IF DATAIN = '1' THEN Q <= “11101”;

      ELSE Q<=“01101”;

      END IF;

      WHEN OTHERS => Q<=“00000”;

      END CASE;

      END PROCESS COM1;

      END behav;

      7、狀態(tài)編碼

      LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY AD574A IS

      PORT(D : IN

      STD_LOGIC_VECTOR(11 DOWNTO 0);

      CLK ,STATUS : IN STD_LOGIC;

      OUT4 : OUT

      STD_LOGIC_VECTOR(3 DOWNTO 0);

      Q : OUT STD_LOGIC_VECTOR(11 DOWNTO 0));END AD574A;ARCHITECTURE behav OF AD574A IS SIGNAL current_state, next_state: STD_LOGIC_VECTOR(4 DOWNTO 0);

      CONSTANT st0 : STD_LOGIC_VECTOR(4 DOWNTO 0):= “11100”;

      CONSTANT st1 : STD_LOGIC_VECTOR(4 DOWNTO 0):= “00001”;

      CONSTANT st2 : STD_LOGIC_VECTOR(4 DOWNTO 0):= “00000”;

      CONSTANT st3 : STD_LOGIC_VECTOR(4 DOWNTO 0):= “00100”;

      CONSTANT st4 : STD_LOGIC_VECTOR(4 DOWNTO 0):= “00110”;

      SIGNAL REGL

      : STD_LOGIC_VECTOR(11 DOWNTO 0);

      SIGNAL LK

      : STD_LOGIC;

      BEGIN

      COM1: PROCESS(current_state,STATUS)

      --決定轉(zhuǎn)換狀態(tài)的進程 BEGIN

      CASE current_state IS

      WHEN st0 => next_state <= st1;

      WHEN st1 => next_state <= st2;

      WHEN st2 => IF(STATUS='1')THEN next_state <= st2;

      ELSE

      next_state <= st3;

      END IF;

      WHEN st3=> next_state <= st4;

      WHEN st4=> next_state <= st0;

      WHEN OTHERS => next_state <= st0;

      END CASE;

      OUT4 <= current_state(4 DOWNTO 1);END PROCESS COM1;

      REG: PROCESS(CLK)--時序進程

      BEGIN

      IF(CLK'EVENT AND CLK='1')THEN

      current_state <= next_state;

      END IF;

      END PROCESS REG;

      LK <= current_state(1);

      LATCH1 : PROCESS(LK)--數(shù)據(jù)鎖存器進程

      BEGIN

      IF LK='1' AND LK'EVENT THEN

      REGL <= D;

      END IF;

      END PROCESS;

      Q <= REGL;

      END behav;9章

      1、VHDL有那幾種基本的順序語句? 賦值語句;流程控制語句;等待語句;子程序調(diào)用語句;返回語句;空操作語句。

      2、什么叫順序語句,它的適用范圍是什么? 執(zhí)行順序與它們的書寫順序基本一致的語句叫順序語句,順序語句只能出現(xiàn)在進程和子程序中,子程序包括函數(shù)和過程。3、VHDL并行語句幾種?

      第四篇:EDA總結(jié)

      一、有關(guān)概念

      1.ASIC全稱:專用集成電路; 2.FPGA:現(xiàn)場可編程門陣列 3.CPLD:復(fù)雜可編程邏輯器件; 4.VHDL全稱:硬件描述語言; 5.全定制; 6.半定制;

      7.IP核;IP就是知識產(chǎn)權(quán)核或知識產(chǎn)權(quán)模塊的意思

      8.綜合(器);綜合就是將電路的高級語言(如行為描述)轉(zhuǎn)換為低級的,可與FPGA/CPLD的基本結(jié)構(gòu)相映射的網(wǎng)表文件或程序。

      9.適配(器);適配器也稱結(jié)構(gòu)綜合器,它的功能是將綜合器產(chǎn)生的網(wǎng)表文件配置于指定的目標(biāo)器件中,使之產(chǎn)生最終的下載文件。

      10.功能仿真;是直接對VHDL、原理圖描述或其他描述形式的邏輯功能進行測試模擬,以了解其實現(xiàn)的功能是否滿足原設(shè)計的要求

      11.時序仿真;就是接近真實器件運行特性的仿真,仿真文件中已包含了器件硬件特性參數(shù),因而,仿真精度高。

      12.編程下載;把適配后生成的下載或配置文件,通過編程器或編程電纜向FPGA或CPLD下載,以便進行硬件測試和驗證 13.PROM;可編程只讀存儲器 14.PLA;可編程邏輯陣列 15.PAL;可編程陣列邏輯 16.查找表; 17.乘積項;

      18.實體;VHDL實體作為一個設(shè)計實體(獨立的電路功能結(jié)構(gòu))的組成部分,其功能是對這個設(shè)計實體與外部電路進行接口描述。

      19.結(jié)構(gòu)體;結(jié)構(gòu)體是實體所定義實體中的一個組成部分。結(jié)構(gòu)體描述設(shè)計實體的內(nèi)部結(jié)構(gòu)和外部設(shè)計實體端口間的邏輯關(guān)系。

      20.元件例化;元件例化意味著在當(dāng)前結(jié)構(gòu)體內(nèi)定義了一個新的設(shè)計層次,這個設(shè)計層次的總稱叫元件,但它可以以不同的形式出現(xiàn)。?? 21.時鐘進程; 22.三態(tài); 23.線與; 24.數(shù)據(jù)對象;

      25.變量;變量是一個局部量,只能在進程和子程序中使用,變量的賦值是立即發(fā)生的,不存在任何延時行為。

      26.信號;信號是硬件系統(tǒng)的基本數(shù)據(jù)對象,它的性質(zhì)類似于連接線。信號可以作為設(shè)計實體中并行語句模塊間的信息交流通道

      27.Moore型狀態(tài)機;異步輸出狀態(tài)機,輸出僅為當(dāng)前狀態(tài)的函數(shù),在輸入發(fā)生變化時還必須等待時鐘的到來。

      28.Mealy型狀態(tài)機;同步輸出狀態(tài)機,輸出是當(dāng)前狀態(tài)和所有輸入信號的函數(shù),它的輸出是在輸入變化后立即發(fā)生的。不依賴于時鐘的同步。

      注意:

      1.<= 對信號SIGNAL的賦值 := 是對變量variable的賦值

      2.程序的實體名必須和文件名一致,例1中二輸入與門的文件名必須為yumen

      一、有關(guān)概念

      ASIC全稱;FPGA和CPLD全稱;VHDL全稱;全定制;半定制; IP核;綜合(器);適配(器);功能仿真;時序仿真;編程下載;PROM;PLA;PAL;查找表;乘積項;實體;結(jié)構(gòu)體;元件例化;時鐘進程;三態(tài);線與; 數(shù)據(jù)對象;變量;信號; Moore型狀態(tài)機;Mealy型狀態(tài)機。

      二、程序分析及設(shè)計

      1、二輸入與門的VHDL語言設(shè)計。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY yumen IS

      PORT(a, b : IN BIT;

      y : OUT BIT);END ENTITY yumen;ARCHITECTURE one OF yumen IS BEGIN y <= a AND b;END ARCHITECTURE one;

      2、帶有異步復(fù)位和同步時鐘使能的6進制計數(shù)器VHDL語言設(shè)計。

      LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY jinzhi IS PORT(CLK,RST,EN : IN STD_LOGIC;CQ : OUT STD_LOGIC_VECTOR(2 DOWNTO 0);COUT : OUT STD_LOGIC);END jinzhi;ARCHITECTURE behav OF jinzhi IS BEGIN PROCESS(CLK, RST, EN)VARIABLE CQI : STD_LOGIC_VECTOR(2 DOWNTO 0);BEGIN IF RST = '1' THEN CQI :=(OTHERS =>'0');--計數(shù)器復(fù)位 ELSIF CLK'EVENT AND CLK='1' THEN--檢測時鐘上升沿 IF EN = '1' THEN--檢測是否允許計數(shù) IF CQI < 5 THEN CQI := CQI + 1;--允許計數(shù)

      ELSE CQI :=(OTHERS =>'0');--大于5,計數(shù)值清零 END IF;END IF;END IF;IF CQI = 5 THEN COUT <= '1';--計數(shù)大于5,輸出進位信號 ELSE COUT <= '0';END IF;CQ <= CQI;--將計數(shù)值向端口輸出 end PROCESS;END behav;

      3、用VHDL語言設(shè)計2選1數(shù)據(jù)選擇器。

      LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY erxuanyi IS PORT(a, b, s: IN BIT;y : OUT BIT);END erxuanyi;ARCHITECTURE one OF erxuanyi IS BEGIN PROCESS(a,b,s)BEGIN IF s = '0' THEN y <= a;ELSE y <= b;END IF;END PROCESS;END;

      4、邊沿型T、D觸發(fā)器VHDL語言設(shè)計。--D觸發(fā)器

      LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DFF IS PORT(CLK : IN STD_LOGIC;D : IN STD_LOGIC;Q : OUT STD_LOGIC);END;ARCHITECTURE bhv OF DFF IS SIGNAL Q1 : STD_LOGIC;BEGIN PROCESS(CLK)BEGIN IF CLK'EVENT AND CLK = '1' THEN Q1 <= D;END IF;END PROCESS;Q <= Q1;END bhv;

      --T觸發(fā)器

      有clk且為1的時候,T與當(dāng)前狀態(tài)異或

      LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY tff IS PORT(CLK : IN STD_LOGIC;T : IN STD_LOGIC;Q : OUT STD_LOGIC);END;ARCHITECTURE bhv OF tff IS SIGNAL Q1 : STD_LOGIC;BEGIN PROCESS(CLK)BEGIN IF CLK'EVENT AND CLK = '1' THEN Q1 <= Q1 XOR T;END IF;END PROCESS;Q <= Q1;END bhv;

      5、帶并行置數(shù)的8位右移移位寄存器VHDL語言設(shè)計。

      library ieee;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SHFRT IS PORT(CLK,LOAD: IN STD_LOGIC;

      DIN: IN STD_LOGIC_VECTOR(7 DOWNTO 0);

      QB:OUT STD_LOGIC);END SHFRT;

      ARCHITECTURE BEHAV OF SHFRT IS BEGIN PROCESS(CLK,LOAD)

      VARIABLE REG8: STD_LOGIC_VECTOR(7 TO 0);BEGIN

      IF CLK'EVENT AND CLK='1' THEN

      IF LOAD='1' THEN REG8:=DIN;

      ELSE REG8(6 DOWNTO 0):=REG8(7 DOWNTO 1);

      END IF;

      END IF;

      QB<=REG8(0);END PROCESS;END BEHAV;--說明:當(dāng)clk有上升沿,而且load為1的時候把din的值賦給REG8,如果clk有上升沿,而且load為0的時候把REG8的高7為賦給低7位(注意此時最高位不變)6、1位半加器VHDL語言設(shè)計。(布爾邏輯描述)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY banjia IS PORT(a,b : IN STD_LOGIC;co,so : OUT STD_LOGIC);END ENTITY banjia;ARCHITECTURE fh1 OF banjia IS BEGIN so <= not(a xor(not b));co <= a and b;END ARCHITECTURE fh1;

      7、用VHDL語言設(shè)計實現(xiàn)四選一數(shù)據(jù)選擇器。

      LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY sixuan IS PORT(a, b, c , d: IN BIT;

      s: IN STD_LOGIC_VECTOR(1 DOWNTO 0);y : OUT BIT);END sixuan;ARCHITECTURE one OF sixuan IS BEGIN PROCESS(a,b,c,d,s)BEGIN case s(1 DOWNTO 0)is when “00” => y <= a;when “01” => y <= b;when “10” => y <= c;when “11” => y <= d;when others => null;END case;END PROCESS;END;

      8、用VHDL語言實現(xiàn)三態(tài)門設(shè)計。

      LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY santai IS port(enable : IN STD_LOGIC;datain : IN STD_LOGIC_VECTOR(7 DOWNTO 0);dataout : OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END santai;ARCHITECTURE bhv OF santai IS BEGIN PROCESS(enable,datain)BEGIN IF enable = '1' THEN dataout <= datain;ELSE dataout <=“ZZZZZZZZ”;END IF;END PROCESS;END bhv;

      9、設(shè)有VHDL描述的半加器h_adder和或門or2,試通過層次化設(shè)計思想設(shè)計由半加器和或門構(gòu)成的一位二進制全加器的VHDL程序。全加器f_adder電路結(jié)構(gòu)組成圖如下所示。

      半加器h_adder LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY h_adder IS PORT(a,b : IN STD_LOGIC;co,so : OUT STD_LOGIC);END ENTITY h_adder;ARCHITECTURE fh1 OF h_adder IS BEGIN so <=(a OR b)AND(a NAND b);co <= NOT(a NAND b);END ARCHITECTURE fh1;

      或門 or2a LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY or2a IS PORT(a, b :IN STD_LOGIC;c : OUT STD_LOGIC);END ENTITY or2a;ARCHITECTURE one OF or2a IS BEGIN c <= a OR b;END ARCHITECTURE one;

      元件例化adder library ieee;use ieee.std_logic_1164.all;entity adder is port(ain,bin,cin:in std_logic;

      cout,sum :out std_logic);end entity adder;architecture fd1 of adder is component h_adder

      port(a,b:in std_logic;

      co,so:out std_logic);end component;component or2a

      port(a,b:in std_logic;

      c:out std_logic);end component;signal d,e,f:std_logic;begin u1 : h_adder port map(a=>ain,b=>bin,co=>d,so=>e);u2 : h_adder port map(a=>e,b=>cin,co=>f,so=>sum);u3 : or2a port map(a=>d,b=>f,c=>cout);end architecture fd1;

      第五篇:EDA期末考試題

      附帶: 一.問答題

      1信號賦值語句在什么情況下作為并行語句?在什么情況下作順序語句?信號賦值和變量賦值符號分別是什么?兩種賦值符號有什么區(qū)別?

      ? 信號賦值語句在進程外作并行語句,并發(fā)執(zhí)行,與語句所處的位置無關(guān)。信號賦值語句在進程內(nèi)或子程序內(nèi)做順序語句,按順序執(zhí)行,與語句所處的位置有關(guān)。

      ?

      信號賦值符號為“<=”變量賦值用“:=”。信號賦值符號用于信號賦值動作,不立即生效。變量,賦值符號用于變量賦值動作,立即生效。

      2進程的敏感信號表指的是什么?簡述敏感信號表在進程中的作用?

      ?

      進程的“敏感信號表”也稱敏感表,是進程的激活條件,可由一個或多個信號組成,各信號間以“,”號分隔。當(dāng)敏感信號表中的任一個信號有事件發(fā)生,即發(fā)生任意變化,此時,進程被激活,進程中的語句將從上到下逐句執(zhí)行一遍,當(dāng)最后一條語句執(zhí)行完畢之后,進程即進入等待掛起狀態(tài),直到下一次敏感表中的信號有事件發(fā)生,進程再次被激活,如此循環(huán)往復(fù)。

      3什么是庫、程序包、子程序、過程調(diào)用和函數(shù)調(diào)用?

      ? 庫和程序包用來描述和保存元件、類型說明和子程序等,以便在其它設(shè)計中通過其目錄可查詢、調(diào)用。子程序由過程和函數(shù)組成。在子程序調(diào)用過程中,過程能返回多個變量,函數(shù)只能返回一個變量。若子程序調(diào)用的是一個過程,就稱為過程調(diào)用,若子程序調(diào)用的是一個函數(shù),則稱為函數(shù)調(diào)用。過程調(diào)用、函數(shù)調(diào)用都是子程序調(diào)用。

      二.改錯題

      1.已知sel為STD_LOGIC_VECTOR(1 DOWNTO 0)類型的信號,而a、b、c、d、q均為STD_LOGIC類型的信號,請判斷下面給出的CASE語句程序片段:

      ? CASE sel IS ? WHEN“00”=>q<=a; ? WHEN“01”=>q<=b; ? WHEN“10”=>q<=c; ? WHEN“11”=>q<=d; ? END CASE; 2.? 答案:CASE語句缺“WHEN OTHERS”語句。

      已知data_in1, data_in2為STD_LOGIC_VECTOR(15 DOWNTO 0)類型的輸入端口,data_out為 STD_LOGIC_VECTOR(15 DOWNTO 0)類型的輸出端口,add_sub為STD_LOGIC類型的輸入端口,請判斷下面給出的程序片段:

      ? LIBRARY IEEE;

      ? USE IEEE.STD_LOGIC_1164.ALL; ? ENTITY add IS ? PORT(data_in1, data_in2:IN INTEGER; ? data_out:OUT INTEGER); ? END add;

      ? ARCHTECTURE add_arch OF add IS ? CONSTANT a:INTEGER<=2; ? BEGIN ? data_out<=(data_in1+ data_in2)* a; ? END addsub_arch; 3.答案:常量聲明時賦初值的“<=”符號應(yīng)改用“:=”符號。已知Q為STD_LOGIC類型的輸出端口,請判斷下面的程序片段: ? ARCHITECTURE test_arch OF test IS ? BEGIN ? SIGNAL B:STD_LOGIC; ? Q<= B;

      END test_arch 答案:信號SIGNAL的聲明語句應(yīng)該放在BEGIN語句之前。

      4.已知A和Q均為BIT類型的信號,請判斷下面的程序片段: ? ARCHITECTURE archtest OF test IS ? BEGIN ? CASE A IS ? WHEN ‘0’=>Q<=‘1’; ? WHEN ‘1’=>Q<=‘0’; ? END CASE; ? END archtest;

      答案:CASE語句應(yīng)該存在于進程PROCESS內(nèi)。

      三.程序設(shè)計

      1@4位二進制并行加法器的源程序ADDER4B.VHD LIBRARY IEEE;

      USE IEEE.STD_LOGIC_1164.ALL;

      USE IEEE.STD_LOGIC_UNSIGNED.ALL;

      ENTITY ADDER4B IS--4位二進制并行加法器 PORT(CIN:IN STD_LOGIC;--低位進位

      A: IN STD_LOGIC_VECTOR(3 DOWNTO 0);--4位加數(shù) B: IN STD_LOGIC_VECTOR(3 DOWNTO 0);--4位被加數(shù) S: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);--4位和 CONT: OUT STD_LOGIC); END ADDER4B;

      ARCHITECTURE ART OF ADDER4B IS SIGNAL SINT:STD_LOGIC_VECTOR(4 DOWNTO 0); SIGNAL AA,BB: STD_LOGIC_VECTOR(4 DOWNTO 0); BEGIN AA<='0'& A;--將4位加數(shù)矢量擴為5位,為進位提供空間 BB<='0'& B;--將4位被加數(shù)矢量擴為5位,為進位提供空間 SINT<=AA+BB+CIN ; S<=SINT(3 DOWNTO 0); CONT<=SINT(4); END ART;

      2@ 8位二進制加法器的源程序ADDER8B.VHD LIBRARY IEEE;

      USE IEEE_STD.LOGIC_1164.ALL; USE IEEE_STD.LOGIC_UNSIGNED.ALL: ENTITY ADDER8B IS--由4位二進制并行加法器級聯(lián)而成的8位二進制加法器 PORT(CIN:IN STD_LOGIC;

      A:IN STD_LOGIC_VECTOR(7 DOWNTO 0); B:IN STD_LOGIC_VECTOR(7 DOWNTO 0); S:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); COUT:OUT STD_LOGIC); END ADDER8B;

      ARCHICTURE ART OF ADDER8B IS COMPONENET ADDER4B--對要調(diào)用的元件ADDER4B的界面端口進行定義 PORT(CIN:IN STD_LOGIC;

      A:IN STD_LOGIC_VECTOR(3 DOWNTO 0);

      B:IN STD_LOGIC_VECTOR(3 DOWNTO 0); S:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); CONT:OUT STD_LOGIC);

      END COMPONENT ;

      SIGNAL CARRY_OUT:STD_LOGIC;--4位加法器的進位標(biāo)志 BEGIN U1:ADDER4B--例化(安裝)一個4位二進制加法器U1 PORT MAP(CIN=>CIN,A=>A(3 DOWNTO 0),B=>B(3 DOWNTO0),S=>S(3 DOWNTO 0),COUT=>CARRY_OUT);

      U2:ADDER4B--例化(安裝)一個4位二進制加法器U2 PORT MAP(CIN=>CARRY_OUT,A=>A(7 DOWNTO 4),B=>B(7 DOWNTO 4),S=>S(7 DOWNTO 4);CONT=>CONT); END ART;

      3.@觸發(fā)器和緩沖器

      D觸發(fā)器:Process(clk)begin if(clk’event and clk=‘1’)then q <= d;end if;end process;緩沖器:Process(clk)begin if(clk=‘1’)then q <= d;end if;

      end process;

      T觸發(fā)器:Process(clk)begin

      if(clk’event and clk=‘1’)then

      if(t = ‘1’)then q <= not(q);else

      q <= q;end if;end if;end process;4.@16位鎖存器的源程序

      LIBRARY IEEE;

      USE IEEE.STD_LOGIC_1164.ALL; ENTITY REG16B IS

      --16位鎖存器

      PORT(CLK:IN STD_LOGIC;--鎖存信號 CLR:IN STD_LOGIC;--清零信號

      D:IN STD_LOGIC_VECTOR(8 DOWNTO 0)--8位數(shù)據(jù)輸入 Q:OUT STD_LOGIC_VECTOR(15 DOWNTO 0));--16位數(shù)據(jù)輸出 END REG16B;

      ARCHITECTURE ART OF REG16B IS SIGNAL R16S:STD_LOGIC_VECTOR(15 DOWNTO 0);--16位寄存器設(shè)置 BEGIN PROCESS(CLK,CLR)BEGIN IF CLR = '1' THEN R16S<= “***0”;--異步復(fù)位信號

      ELSIF CLK'EVENT AND CLK = '1' THEN--時鐘到來時,鎖存輸入值

      R16S(6 DOWNTO 0)<=R16S(7 DOWNTO 1);--右移低8位

      R16S(15 DOWNTO 7)<=D;--將輸入鎖到高能位 END IF;

      END PROCESS; Q<=R16S; END ART;

      5@8位右移寄存器的源程序SREG8B.VHD LIBRARY IEEE;

      USE IEEE.STD_LOGIC_1164.ALL; ENTITY SREG8B IS PORT(CLK:IN STD_LOGIC; LOAD :IN STD _LOGIC; BIN:IN STD_LOGIC_VECTOR(7DOWNTO 0); QB:OUT STD_LOGIC); END SREG8B;

      ARCHITECTURE ART OF SREG8B IS SIGNAL REG8B:STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN PROCESS(CLK,LOAD)BEGIN IF CLK'EVENT AND CLK= '1' THEN IF LOAD = '1' THEN REG8<=DIN;

      END IF; END IF; END PROCESS; QB<= REG8(0); END ART;

      --輸出最低位

      --裝載新數(shù)據(jù)

      ELSE REG8(6 DOWNTO0)<=REG8(7 DOWNTO 1);--數(shù)據(jù)右移

      --8位右移寄存器

      6@8位乘法器的源程序

      LIBRARY IEEE;

      USE IEEE.STD_LOGIC_1164.ALL;--8位乘法器頂層設(shè)計 ENTITY MULTI8X8 IS PORT(CLK:IN STD_LOGIC; START:IN STD_LOGIC;

      --乘法啟動信號,高電平復(fù)位與加載,低電平運算

      A:IN STD_LOGIC_VECTOR(7 DOWNTO 0);--8位被乘數(shù) B:IN STD_LOGIC_VECTOR(7 DOWNTO 0);--8位乘數(shù) ARIEND:OUT STD_LOGIC;--乘法運算結(jié)束標(biāo)志位

      DOUT:OUT STD_LOGIC_VECTOR(15 DOWNTO 0));--16位乘積輸出 END MULTI8X8;

      ARCHITECTURE ART OF MULTI8X8 IS COMPONENT ARICTL--待調(diào)用的乘法控制器端口定義 PORT(CLK:IN STD_LOGIC;START:IN STD_LOGIC; CLKOUT:OUT STD_LOGIC;RSTALL:OUT STD_LOGIC;

      ARIEND:OUT STD_LOGIC); END COMPONENT;

      COMPONENT ANDARITH--待調(diào)用的控制與門端口定義 PORT(ABIN:IN STD_LOGIC;

      DIN:IN STD_LOGIC_VECTOR(7 DOWNTO 0); DOUT:OUT_STD_LOGIC_VECTOR(7 DOWNTO 0)); END COMPONENT;

      COMPONENT ADDER8B--待調(diào)用的8位加法器端口定義 COMPONENT SREG8B ... COMPONENT REG16B ...

      SIGNAL GNDINT:STD_LOGIC; SIGNAL INTCLK:STD_LOGIC; SIGNAL RSTALL:STD_LOGIC; SIGNAL QB:STD_LOGIC;

      SIGNAL ANDSD:STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL DTBIN:STD_LOGIC_VECTOR(8 DOWNTO 0); SIGNAL DTBOUT:STD_LOGIC_VECTOR(15 DOWNTO 0); BEGIN DOUT<=DTBOUT;GNDINT<= '0';

      U1:ARICTL PORT MAP(CLK=>CLK,START=>START,CLKOUT=>INTCLK,RSTALL=>RSTALL,ARIEND=>ARIEND); U2:SREG8B PORT MAP(CLK=>INTCLK,LOAD=>RSTALL.DIN=>B,QB=>QB);

      U3:ANDARITH PORT MAP(ABIN=>QB,DIN=>A,DOUT=>ANDSD); U4:ADDER8B PORT MAP(CIN=>GNDINT,A=>DTBOUT(15 DOWNTO 8),B=>ANDSD,S=>DTBIN(7 DOWNTO 0),COUT =>DTBIN(8)); U5:REG16B PORT MAP(CLK =>INTCLK,CLR=>RSTALL,D=>DTBIN,Q=>DTBOUT); END ART;--待調(diào)用的16右移寄存器端口定義--待調(diào)用的8位右移寄存器端口定義

      7@有時鐘使能的十進制計數(shù)器的源程序

      LIBRARY IEEE;

      USE IEEE.STD_LOGIC_1164.ALL; ENTITY CNT10 IS PORT(CLK:IN STD_LOGIC;

      --計數(shù)時鐘信號

      --清零信號--計數(shù)使能信號 CLR:IN STD_LOGIC; END:IN STD_LOGIC;

      --有時鐘使能的十進制計數(shù)器

      CQ:OUT INTEGER RANGE 0 TO 15;--4位計數(shù)結(jié)果輸出 CARRY_OUT:OUT STD_LOGIC);--計數(shù)進位 END CNT10;

      ARCHITECTURE ART OF CNT10 IS

      SIGNAL CQI :INTEGER RANGE 0 TO 15; BEGIN BEGIN

      --計數(shù)器異步清零 PROCESS(CLK,CLR,ENA)

      IF CLR= '1' THEN CQI<= 0;

      IF ENA= '1' THEN IF CQI<9 THEN CQI<=CQI+1; ELSE CQI<=0;END IF; END IF; END IF; END PROCESS; PROCESS(CQI)BEGIN IF CQI=9 THEN CARRY_OUT<= '1';--進位輸出 ELSE CARRY_OUT<= '0';END IF; END PROCESS; CQ<=CQI; END ART;

      --等于9,則計數(shù)器清零 ELSIF CLK'EVENT AND CLK= '1' THEN 8@)六進制計數(shù)器的源程序CNT6.VHD(十進制計數(shù)器的源程序

      CNT10.VHD與此類似)LIBRARY IEEE;

      USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT6 IS PORT(CLK:IN STD_LOGIC; CLR:IN STD_LOGIC; ENA: IN STD_LOGIC;

      CQ:OUT STD_LOGIC_VECTOR(3 DOWNTO 0); CARRY_OUT: OUT STD_LOGIC); END CNT6;

      ARCHITECTURE ART OF CNT6 IS SIGNAL CQI:STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PROCESS(CLK,CLR,ENA)BEGIN IF CLR='1' THEN CQI<=“0000”; ELSIF CLK'EVENT AND CLK='1' THEN IF ENA='1' THEN IF CQI=“0101” THEN CQI<=“0000”; ELSE CQI<=CQI+'1';END IF; END IF; END IF;

      END PROCESS; PROCESS(CQI)BEGIN IF CQI=“0000” THEN CARRY_OUT<='1'; ELSE CARRY_OUT<='0';END IF; END PROCESS; CQ<=CQI; END ART;

      9@十進制計數(shù)器

      LIBRARY ieee;

      USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.ALL;ENTITY count10 IS PORT(clk: IN STD_LOGIC;

      seg: OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END count10;

      ARCHITECTURE a1 OF count10 IS signal sec: STD_LOGIC;

      signal q : STD_LOGIC_VECTOR(21 DOWNTO 0);signal num: STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN

      process(clk)----get 1 hz clock pulse begin

      if clk'event and clk='1' then q<=q+1;end if;sec<=q(21);--get 1 hz clock pulse end process;

      timing: process(sec)begin if sec'event and sec='1' then

      if num<9 then num<=num+1;else num<=“0000”;end if;end if;end process;

      B1: block--bcd-7segs Begin--gfedcba

      seg<= “0111111” when num=0 else “0000110” when num=1 else “1011011” when num=2 else “1001111” when num=3 else “1100110” when num=4 else “1101101” when num=5 else “1111101” when num=6 else “0000111” when num=7 else “1111111” when num=8 else “1101111” when num=9 else

      “0000000”;end block;END a1;

      10@4MHz到1Hz的分頻器

      LIBRARY ieee;

      USE ieee.std_logic_1164.ALL;USE ieee.std_logic_unsigned.ALL;ENTITY count IS

      PORT(clk: in STD_LOGIC;q: out STD_LOGIC;END count;

      ARCHITECTURE a OF count IS

      signal tmp: STD_LOGIC_vector(21 downto 0);Begin

      process(clk)begin

      if clk'event and clk='1' then tmp<=tmp+1;end if;end process;q<=tmp(21);END a;

      11@與門

      ENTITY shili2 is port(input1 : in std_logic;inptu2 : in std_logic;output1 : out std_logic);

      end entity;

      architecture one of shili2 is begin

      output1<=input1 and input2;end entity;

      12@.四輸入與門電路

      library ieee;use ieee.std_logic_1164.all;

      entity and4 is port(a,b,c,d:in std_logic;y:out std_logic;end and4;

      architecture and4_1 of and4 is begin y<= a and b and c and d;end nand4_1;

      法二(與非門):

      library ieee;

      use ieee.std_logic_1164.all entity nand4 is

      port(a.b,c,d:in std_logic;y:out std_logic);end nand4;

      architecture nand4_2 of nand4 si begin

      p1:process(a,b,c,d)variable

      tmp:std_logic_vector(3 downto 0);begin tmp:=a&b&c&d;case tmp is when“0000”=>y<='1';when“0001”=>y<='1';when“0010”=>y<='1';when“0011”=>y<='1';when“0100”=>y<='1';when“0101”=>y<='1';when“0110”=>y<='1';when“0111”=>y<='1';when“1000”=>y<='1';when“1001”=>y<='1';when“1010”=>y<='1';when“1011”=>y<='1';when“1100”=>y<='1';when“1101”=>y<='1';when“1110”=>y<='1';when“1111”=>y<='1';when others=>y<='x';end case;end process;end nand4_2;

      13@四位全加器

      library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity add is port(a,b:in std_logic_vector(3 downto 0);cin:in std_logic;s:out std_logic_vector(3 downto 0);cout:out std_logic);end add;

      architecture beh of add is begin process(a,b,cin)ariable x:std_logic_vector(3 downto 0);variable m,n,l:integer;begin m:=conv_integer(a);n:=conv_integer(b);l:=m+n+conv_integer(cin);x:=conv_std_logic_vector(l,4);s<=x(3 downto 0);cout<=x(3);end process;end beh;14@N位移位寄存器:page70 15@8位通用寄存器:page137 16@串入串出移位寄存器:page138 17@10位計數(shù)器

      LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;

      ENTITY CNT10 IS PORT(CLK ,clr : IN STD_LOGIC;CQ : OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END ENTITY CNT10;ARCHITECTURE ONE OF CNT10 IS BEGIN PROCESS(CLK , clr)VARIABLE LCQ : STD_LOGIC_VECTOR(3 DOWNTO 0);BEGIN IF RST = ‘1’ THEN LCQ := “0000”;ELSIF CLK’EVENT AND CLK = ‘1’ THEN IF LCQ < 9 THEN LCQ := LCQ + 1;ELSE LCQ := “0000”;END IF;END IF;CQ <= LCQ;END PROCESS;END ARCHITECTURE ONE;18@八位串行二進制全加器

      use ieee.std_logic_1164.all;entity product_adder_subtracter is port(a,b:in std_logic_vector(7 downto 0);s:out std_logic_vector(8 downto 0));end;architecture behavioral of product_adder_subtracter is begin behavior:process(a,b)is variable carry_in:std_logic;variable carry_out:std_logic;variable op2:std_logic_vector(b'range);begin op2:=b;end if;for index in 0 to 7 loop carry_in:=carry_out;s(index)<=a(index)xor op2(index)xor carry_in;carry_out:=(a(index)and op2(index))or(carry_in and(a(index)xor op2(index)));end loop;s(8)<=a(7)xor op2(7)xor carry_out;end process;end;

      EDA知識要點:1、2、3、4、5、目前流行的HDL語言有那些?; 什么是ASIC。

      VHDL是由什么機構(gòu)制定并公布的。VHDL的兩大類基本描述語句是什么。

      MAX+PLUSⅡ平臺上,原理圖、仿真波形文件、VHDL文件的擴展名 是什么?6、7、8、9、結(jié)構(gòu)體常見的功能語句有那些? 子程序分為那兩類,其結(jié)構(gòu)為什么。信號與變量的賦值有何區(qū)別?。可編程器件分為哪些類?

      10、VHDL中常見的庫有那些?。

      11、不完整的條件語句與完整的條件語句生成的電路有何區(qū)別

      12、VHDL的標(biāo)識符由什么構(gòu)成。

      13、VHDL中預(yù)定義數(shù)據(jù)類型有那些?。

      14、CASE語句使用當(dāng)中的注意事項。

      15、目前國際上較大的PLD器件制造公司有那幾家公司。

      16、VHDL數(shù)據(jù)對象有什么

      17、賦值語句分哪些類,分別寫出一句賦值語句。

      18、實現(xiàn)時序電路和邏輯組合電路分別用什么語句實現(xiàn),分別寫出他們的一般表式。

      19、簡述元件例化語句組成及語句格式。

      20、數(shù)據(jù)對象有哪些種,分別寫出定義這些數(shù)據(jù)對象的一般表述格式。

      21、簡述進程語句的使用要點?

      22、寫出VHDL常用的順序語句的名稱。

      23、簡述VHDL邏輯操作符的種類及所允許的操作數(shù)的數(shù)據(jù)類型。

      24、EDA技術(shù)的含義。

      25、VHDL語言中的邏輯操作符有那些?

      26、目前較流行的集成EDA開發(fā)環(huán)境(軟件)有那些?

      27、簡述EDA技術(shù)的CPLD/FPGA的設(shè)計流程。

      28、寫出實體中的PORT語句結(jié)構(gòu)并說明其作用。

      29、簡述EDA技術(shù)經(jīng)歷了那幾個發(fā)展階段。30、寫出元件例化語句語句格式,并說明其作用。

      31、試比較圖形輸入法和文本輸入法有何優(yōu)缺點?

      32、結(jié)構(gòu)體的語言格式與作用。

      33、寫出PROCESS語句結(jié)構(gòu)的一般表達格式?

      34、EDA技術(shù)常用的輸入方法有?

      35、什么是實體和結(jié)構(gòu)體,其功能是什么?,36、MAX+pulsⅡ的編輯窗口有那幾種,分別是什么?

      37、MAX+pulsⅡ的原理圖輸入法、文本輸入法、波形輸入法生成的文件擴展名為?

      38、VHDL的操作符有那幾大類?每一類的操作符分別是什么?每一類操作符可以對那些數(shù)據(jù)進行操作(運算)?

      39、VHDL中如沒有特別的說明算術(shù)操作符‘ + ’號對應(yīng)的操作數(shù)為什么類型

      40、可編程器件(PLD)分為哪兩類

      41、標(biāo)準(zhǔn)邏輯位數(shù)據(jù)類型常用的數(shù)值有哪幾種?

      42、在VHDL語言中常見的的數(shù)據(jù)類型有那些?

      43、完整的條件語句將產(chǎn)生什么電路,不完整的條件語句將產(chǎn)生什么電路。

      44、信號和變量有什么區(qū)別?

      45、VHDL作為工業(yè)標(biāo)準(zhǔn),是由那個機構(gòu)制定并公布的。

      46、實體部分的端口模式有四個類型。

      47、從執(zhí)行方式看VHDL的基本描述語句包括哪兩大基本描述語句?

      48、VHDL文件存盤時,其主文件名應(yīng)與實體名一致,擴展名應(yīng)為什呢

      49、硬件描述語言(HDL)的種類很多?

      50、簡述元件例化語句的語句格式及關(guān)聯(lián)方法。

      EDA綜合設(shè)計設(shè)計題

      1、用兩種以上的按照下圖設(shè)計一個四選一多路選擇器

      2、使用元件例化語句編寫下圖所示的頂層文件,其中adder_1為一個由原理圖輸入法設(shè)計的完整的設(shè)計實體。

      3、已知4位全加器電路原理圖如下,請用元件例化語句編寫其程序。

      4、用VHDL語言編寫下圖所示的七段顯示譯碼器。

      D0D1D2D3七段譯碼器a(X6)b(X5)c(X4)d(X3)e(X2)f(X1)g(X0)七段數(shù)碼管afedgbc5、用VHDL設(shè)計一個三位十進制的,帶有使能控制端口enable、異步清零端口rst、同步預(yù)置控制端口load和預(yù)置數(shù)據(jù)輸入端口date的計數(shù)器。

      6、編寫一個D觸發(fā)器的硬件描述語言程序,要求實現(xiàn)上升沿觸發(fā)。

      7、使用IF語句設(shè)計一個帶有異步復(fù)位和置位、同步預(yù)置的4位2

      進制加法計數(shù)器。

      U0dind0DclkclkQd1DU1Qclkd2DU2Qclkd3DU3Qclkd4dout

      下載EDA期末總結(jié)7word格式文檔
      下載EDA期末總結(jié)7.doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        EDA基礎(chǔ)總結(jié)

        EDA基礎(chǔ)總結(jié) 綜述部分 1. EDA的中文全稱為電子設(shè)計自動化,英文全名為Electronic Design Automation。 2. EDA平臺常用的兩種輸入電路的方法是:電路原理圖輸入法、HDL輸入法。......

        EDA基礎(chǔ)知識總結(jié)

        VHDL有如下特點:①支持從系統(tǒng)級到邏輯門級電路的描述;②具有很強的硬件描述能力;③設(shè)計技術(shù)齊全、方法靈活、支持廣泛;④對設(shè)計描述具有相對的獨立性;⑤具有很強的移植能力;⑥易于......

        EDA總結(jié)題

        名詞解釋: EDA:electronic design auto mation 電子設(shè)計自動化 PLD:programmable logic device 可編程邏輯器件 LDPLD:低密度可編程邏輯器件 HDPLD:高密度可編程邏輯器件 PROM:pro......

        EDA復(fù)習(xí)總結(jié)

        一.名詞解釋 EDA 電子自動化設(shè)計 electronic design automation FPGA 現(xiàn)場可編程門陣列 field programmable gate array CPLD 復(fù)雜可編程邏輯器件 complex programmable log......

        EDA實驗總結(jié)(五篇材料)

        EDA 實驗總結(jié) 系別:物理系 專業(yè):電子信息科學(xué)與技術(shù) 姓名:馬亞偉 學(xué)號:2010171135 在本學(xué)期短短6周的EDA實驗學(xué)習(xí)中,我初步對這一新的領(lǐng)域有了一個較為系統(tǒng)的理解,也為我的專業(yè)學(xué)......

        遼寧工大電氣自動化EDA期末答案

        1.飛線:飛線是虛線,它指示元件焊點之間的連接關(guān)系。一般用導(dǎo)線來實現(xiàn)飛線的意圖。 2.元件封裝:元件封裝是指元件放置到印制電路板中所表示的外框和焊點位置。 3.網(wǎng)絡(luò)標(biāo)號:網(wǎng)絡(luò)標(biāo)......

        EDA實訓(xùn)報告總結(jié)

        實訓(xùn)心得 短暫的一周實訓(xùn)已經(jīng)過去了,對于我來說這一周的實訓(xùn)賦予了我太多實用的東西了,不僅讓我更深層次的對課本的理論知識深入了理解,而且還讓我對分析事物的邏輯思維能力得......

        EDA第五章復(fù)習(xí)總結(jié)[5篇范文]

        2.結(jié)構(gòu)體(architecture)部分 67頁IN(輸入)、OUT(輸出)是表示信號的類別; BIT是表示信號的類型,BIT是系統(tǒng)定義的類型,即二進位類型,信號只有‘0’和‘1’兩種值; 每個VHDL語句都是......