1 / 17

CPLD-VHDL 國立新營高工 WWW.HYIVS.TNC.EDU.TW 沈慶陽

CPLD-VHDL 國立新營高工 WWW.HYIVS.TNC.EDU.TW 沈慶陽. VHDL. VHDL 就是 VHSIC(Very High Speed Integrated Circuit) Hardware Description Language 的 縮寫 , 即非常高速積體電路的硬體描述語言 . VHDL is a Hardware Description Language, Not a Programming language. VHDL 是硬體描述語言 , 不是程式語言 . PACKAGE. VHDL STRUCTURE( 結構 ). 包裝.

serafina
Download Presentation

CPLD-VHDL 國立新營高工 WWW.HYIVS.TNC.EDU.TW 沈慶陽

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CPLD-VHDL國立新營高工WWW.HYIVS.TNC.EDU.TW沈慶陽

  2. VHDL VHDL就是VHSIC(Very High Speed Integrated Circuit) Hardware Description Language的 縮寫,即非常高速積體電路的硬體描述語言. VHDL is a Hardware Description Language, Not a Programming language. VHDL 是硬體描述語言, 不是程式語言.

  3. PACKAGE VHDL STRUCTURE(結構) 包裝 • ENTITY 描述電路的I/O介面 • ARCHITECTURE 描述電路的特性和運作 structure Description Dataflow Description Behavioral Description 結構性描述 資料流描述 行為性描述

  4. 使用VHDL設計一個兩輸入AND GATE(及閘) a b and_2 (檔名) y

  5. EXAMPLE:第一個測試程式(兩輸入及閘) 使用程式庫與零件盒 LIBRARY IEEE;(使用內建IEEE程式庫) USE IEEE.STD_LOGIC_1164.ALL;(使用零件盒內所有項目) ENTITY and_2 IS PORT (a,b : IN STD_LOGIC; y : OUT STD_LOGIC ); END and_2; ENTITY描述電路的外部包裝,亦即I/O接腳. a b and_2 (檔名) y ARCHITECTURE dataflow OF and_2 IS BEGIN y <= a AND b; END dataflow; Architecture用以描述ENTITY 所涵蓋的電路行為和特性. 此例為AND閘, y=a*b 註:此例and_2(斜体字係檔名).存檔的檔名為and_2.vhd 請以此例作一個NOT GATE(反閘),檔名inv_1.vhd

  6. Dataflow Description(資料流描述)(反閘) 使用程式庫與零件盒 LIBRARY IEEE;(使用內建IEEE程式庫) USE IEEE.STD_LOGIC_1164.ALL;(使用零件盒內所有項目) ENTITY inv_1 IS PORT (a : IN STD_LOGIC; y : OUT STD_LOGIC ); END inv_1; ENTITY描述電路的外部包裝,亦即I/O接腳. inv_1 (檔名) a y ARCHITECTURE dataflow OF inv_1 IS BEGIN y <=NOT a; END dataflow; Architecture用以描述ENTITY 所涵蓋的電路行為和特性. 此例為NOT閘, y<=NOT a 註:此例inv_1(斜体字係檔名).存檔的檔名為inv_1.vhd 請參考此例,製作一個兩輸入OR GATE(或閘)

  7. 語法: --程式開頭— LIBRARY 程式庫 (目錄) 名稱 USE 程式庫名稱.零件盒名稱.指定項目 使用程式庫與零件盒 範例: --程式開頭— LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; 使用(內建)IEEE程式庫 使用IEEE程式庫的STD_LOGIC_1164 零件盒內所有項目

  8. ENTITY語法如下: --ENTITY是描述I/O接腳的規格-- ENTITY電路單體名稱 IS PORT ( 訊號A : 模式 資料型態;    訊號B : 模式 資料型態; ……… 訊號N : 模式 資料型態 ); END電路單體名稱 ; ENTITY(電路單體) ENTITY語法範例: ENTITYand_2 IS PORT (a,b :IN STD_LOGIC; y :OUT STD_LOGIC ); ENDand_2 ; and_2 (檔名) a b y

  9. 範例:半加器HALFADD的電路單體範例 ENTITYHALFADDIS PORT ( A,B :IN BIT; Sum,Carry:OUT BIT); ENDHALFADD; ENTITY電路單體的語法範例(半加器) A(被加數) HALFADD (檔名) Sum(和) B(加數) Carry(進位)

  10. 範例:4對1多工器MUX4的電路單體範例 ENTITYMUX4IS PORT ( A : IN STD_LOGIC; B : IN STD_LOGIC; C : IN STD_LOGIC; D: IN STD_LOGIC; S: IN STD_LOGIC_VECTOR(1 DOWNTO 0); Y: OUT STD_LOGIC); ENDmux4; ENTITY電路單體的語法範例(多工器) A MUX4 (檔名) B Y C D S0 S1

  11. IN:輸入模式,即此訊號需由電路單體之外的電路來驅動;IN:輸入模式,即此訊號需由電路單體之外的電路來驅動; IN也是VHDL Port中內定的訊號模式. 2. OUT:輸出模式,即此訊號僅能輸出電路單體之外去驅動外    圍電路,不可回授回單體之內驅動內部電路. 3. BUFFER:緩衝模式,是一種可以回授驅動單體內電路的輸 出模式.但須注意: a.不能有多重驅動的情形. b.僅能回授接到內部訊號,或其它電路單體同為緩衝模式的Port訊號. 4. INOUT:代表雙向模式PORT訊號,即可同時代表IN,OUT與 BUFFER等模式訊號. ENTITY裡PORT的四種輸出入模式

  12. BIT 2. BIT_VECTOR(0 TO 7) 3. STD_LOGIC 4. STD_LOGIC_VECTOR(15 DOWNTO 7) ENTITY裡PORT的四種基本資料型態 PS: STD_LOGIC為IEEE-1164所提供的標準,定義為: X: Forcing Unknown;浮接不定 0: Forcing 0 ;低電位 1: Forcing 1 ;高電位 Z: High Impedance;高阻抗 W: Weak Unknown;弱浮接 L: Weak 0;弱低電位 H: Weak 1 ;弱高電位 - : Don’t care ;不必理會

  13. ARCHITECTURE語法如下: ARCHITECTURE架構名稱 OF電路單體名稱(檔名)IS 區域訊號宣告 BEGIN 架構描述 END架構名稱; ARCHITECTURE架構描述 ARCHITECTURE 語法範例(雙輸入AND閘) ARCHITECTURE dataflow OFand_2IS BEGIN y <= a AND b; END dataflow;

  14. ARCHITECTURE架構描述範例(半加器) ARCHITECTURE 語法範例(HALFADD半加器) ARCHITECTURE behave OFHALFADDIS BEGIN Sum <= A xor B; Carry <= A and B; END behave;

  15. 行為性描述(Behavioral Descriptions) 反及閘NAND Gate 行為性描述係使用Process敘述的方式來完成(Sequential執行模式). 屬於高階描述方式(High-level Description). LIBRARY IEEE; (使用內建IEEE程式庫) USE IEEE.STD_LOGIC_1164.ALL; (使用零件盒內所有項目) ENTITY nand2 IS PORT (a,b : IN STD_LOGIC; y : OUT STD_LOGIC ); END nand2; ARCHITECTURE behavior OF nand2 IS BEGIN process (a,b) begin if ( a=‘1’) and (b=‘1’) then y<=‘0’; else y<= ‘1’; end if; End process; END behavior;

  16. 資料流描述(Dataflow Descriptions) 反及閘NAND Gate 資料流描述係利用布林方程式來表現各信號之間的代數關係. 屬於並行(Current)敘述的方式. LIBRARY IEEE; (使用內建IEEE程式庫) USE IEEE.STD_LOGIC_1164.ALL; (使用零件盒內所有項目) ENTITY nand IS PORT (a,b : IN STD_LOGIC; y : OUT STD_LOGIC ); END nand; ARCHITECTURE dataflow OF nand IS BEGIN y <= a NAND b; END dataflow;

  17. 結構性描述(Structure Descriptions) 反及閘NAND Gate 結構性描述是由VHDL的netlist所組成,這些netlist就好像在schematic中的netlist,因為所有的零件都是由signal連接而成.結構性描述是階層性的(hierarchical),使用Component與Port Map,Component的功能能夠讓我們作元件資料庫的設計,它與 Port Map結合可以讓我們利用現有的Component像堆積木一般累積出複雜的電路. LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY nand2 IS PORT (a,b : IN STD_LOGIC; y : OUT STD_LOGIC ); END nand2; ARCHITECTURE structure OF nand2 IS Signal i:BIT; component AND_2 port( i1,i2:in STD_LOGIC; o1:out STD_LOGIC); end component; component inverter port(i1:in STD_LOGIC; o1:out STD_LOGIC); end component; BEGIN cell1:AND_2 port map (a,b,i); cell2:inverter port map (i,y); END structure; ***於此例中,需先完成cell 1 (nand_2)及閘 和 cell 2(inverter)反閘之程式,

More Related