Presentation is loading. Please wait.

Presentation is loading. Please wait.

Programmable Logic System Design

Similar presentations


Presentation on theme: "Programmable Logic System Design"— Presentation transcript:

1 Programmable Logic System Design
Lab02- Design Entry with VHDL SOC LAB.

2 Lab Description VHDL 程式撰寫入門。 瞭解如何用不同的描述語法去完成一個二位元比較器。
認識 Testbench。

3 VHDL基本設計觀念 VHDL語言程式之撰寫,可分為兩個部分: 單體(Entity):電路外觀之描述 架構(Architecture):電路內部功能之描述

4 VHDL Entity(電路外觀之描述) ENTITY 單體名稱 IS PORT ( 訊號A : 模式 資料型別 訊號B : 模式 資料型別
: : : 訊號N : 模式 資料型別 ); End 單體名稱;

5 語法範例 ENTITY and_2 IS PORT ( a,b :IN STD_LOGIC; y :OUT STD_LOGIC ); END and_2 ;
(檔名)

6 VHDL Structure(電路內部功能的描述)
ARCHITECTURE 架構名稱 OF 單體名稱 IS {架構之宣告區} BEGIN {架構描述程式} END 架構名稱;

7 語法範例 (雙輸入AND閘) ARCHITECTURE dataflow OF and_2 IS BEGIN y <= a AND b; END dataflow;

8 電路架構描述部分其設計的風格可歸納為三種型式:
1.Behavioral Description (行為描述) 2. Data Flow Description(資料流描述) 3. Structure Descriptions (結構描述)

9 Behavioral Description(行為描述)
在VHDL 語言中,係使用Process 敘述來描述一個電子電路行為性模型。而它與資料流描述的最大不同點為,在 process 的所描述的行為模式內皆為順序性 處理,而非資料流描述的共時性處理。Process 敘述的使用語法如下 標籤名稱:PROCESS (Sensitivity List) VARIABLE 變數A:資料型別; VARIABLE 變數B:資料型別; BEGIN {PROCESS 主體敘述} END PROCESS 標籤名稱;

10 EX: 2 Bits Comparator LIBRARY ieee; USE ieee.std_logic_1164.all;
ENTITY cmp IS PORT ( A: IN STD_LOGIC_vector(1 downto 0); B: IN STD_LOGIC_vector(1 downto 0); AEQB: OUT STD_LOGIC); END cmp; ARCHITECTURE structural OF cmp IS BEGIN Comp:PROCESS (A,B) AEQB <= '0'; IF A=B THEN AEQB <= '1'; END IF; END PROCESS Comp; END structural;

11 Data Flow Description 資料流型式的VHDL 描述風格,在VHDL 程式的設計中,亦用得相當多。資料流型式的描述風格,使用各訊號間的相互關係與輸出入關係,也就是描述了訊號資料的流動情形,故稱之為資料流描述法。 屬於共時性的描述,此有別於PROCESS中順序性的描述,在電路架構中所以Data Flow方程式或敘述均代表著共時的意義,並沒有先後順序的關係。 常用的描述法有 Boolean Equation、(WHEN …ELSE)、(WITH …SELECT…WHEN)等。

12 EX: 2 Bits Comparator LIBRARY ieee; USE ieee.std_logic_1164.all;
ENTITY cmp2_1 IS PORT ( A :IN STD_LOGIC_VECTOR(1 DOWNTO 0); B :IN STD_LOGIC_VECTOR(1 DOWNTO 0); AEQB :OUT STD_LOGIC); END cmp2_1; ARCHITECTURE a OF cmp2_1 IS BEGIN AEQB <= '1' WHEN A = B ELSE '0'; END a;

13 Structure Descriptions
結構性的VHDL 電路架構描述法,係以電路元件間的元件宣告與連線關係而建立的。結構性的描述法,包含了二個主要的部分,一為元件的宣告部分(Component Declaration),此部分有時是以Package 的方式,宣告在另外的VHDL檔案中,使用時則要使用USE 指令將該Package 的內容包含在電路架構設計中。二為各元件間的連線關係,各元件之Port 訊號與其所相連接的訊號名稱之對應關係,則使用PORT MAP 敘述來定義清楚。

14 Structure Descriptions (Cont’d)
COMPONENT 元件名稱 PORT ( 訊號A :模式[IN,OUT,INPUT] 資料型別; 訊號B :模式[IN,OUT,INPUT] 資料型別; : : 訊號N :模式[IN,OUT,INPUT] 資料型別; END COMPONENT

15 EX: 2 Bits Comparator 利用結構性描述法的方式來描述一個二位元的比較器:(要先寫 AND gate 和 XNOR gate component) cmp2_3  and_gate  xnor_gate

16 AND Gate LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY and_gate IS
PORT ( A: IN STD_LOGIC; B: IN STD_LOGIC; Y: OUT STD_LOGIC); END and_gate; ARCHITECTURE arch OF and_gate IS BEGIN Y <= (A AND B) ; END arch;

17 XNOR Gate LIBRARY ieee; USE ieee.std_logic_1164.all;
ENTITY xnor_gate IS PORT ( A: IN STD_LOGIC; B: IN STD_LOGIC; Y: OUT STD_LOGIC); END xnor_gate; ARCHITECTURE arch OF xnor_gate IS BEGIN Y <= NOT(A XOR B) ; END arch;

18 2 Bits Comparator LIBRARY ieee;
USE ieee.std_logic_1164.all; USE宣告區&標準定義宣告 ENTITY cmp2_3 IS PORT ( A :IN STD_LOGIC_VECTOR(1 DOWNTO 0); B :IN STD_LOGIC_VECTOR(1 DOWNTO 0); AEQB :OUT STD_LOGIC); END cmp2_3; 單體宣告區 ARCHITECTURE structural OF cmp2_3 IS 架構宣告區 COMPONENT and_gate PORT ( A: IN STD_LOGIC; B: IN STD_LOGIC; Y: OUT STD_LOGIC); END COMPONENT;

19 2 Bits Comparator (Cont’d)
COMPONENT xnor_gate PORT ( A: IN STD_LOGIC; B: IN STD_LOGIC; Y: OUT STD_LOGIC); END COMPONENT; SIGNAL S_X1,S_X2: STD_LOGIC; BEGIN u0: xnor_gate PORT MAP (A => A(1),B => B(1),Y => S_X1); u1: xnor_gate PORT MAP (A => A(0),B => B(0),Y => S_X2); u2: and_gate PORT MAP ( A => S_X1,B => S_X2, Y => AEQB); END structural;

20 Implement Design

21 Test Bench

22 Test Bench (Cont’d) 產生test bench檔,已建立好測試檔和主程式輸入及輸出相對應的腳位關係。

23 Test Bench (Cont’d) 加入自行設計的輸入值和時間的對應關係
-- *** Test Bench - User Defined Section *** tb : PROCESS BEGIN wait for 25 ns; A <= "01" ; (注意: 2bits以上用雙引號,1bit用單引號) B <= "10" ; A <= "11" ; A <= "10" ; A <= “00" ; B <= "11" ; END PROCESS; -- *** End Test Bench - User Defined Section ***

24 Simulate with ModelSim6.0
將主程式及自行設計的測試檔放到 ModelSim 模擬,觀察波型的輸出值跟程式功能是否正確,由下圖觀察知只有在 A、B 相同下輸出為1 ,代表功能正確。

25 Assignment 利用VHDL 程式撰寫的方式表達如下圖所示的波形圖。其中A、B、C 是輸入訊號,D、E 是輸出訊號。
利用VHDL 撰寫 Testbench 並用 Modelsim 模擬。


Download ppt "Programmable Logic System Design"

Similar presentations


Ads by Google