26
使使使 使使使使 HDL 使使使 使使 參參參參 參參 VHDL 參參參參 參參參參 ,,

使用硬體描述語言 HDL 設計硬體電路 參考書籍:使用 VHDL ,王志湖,滄海書局. VHDL Very High Speed Integrated Circuit HDL 由美國國防部發展出 compare

  • View
    242

  • Download
    3

Embed Size (px)

Citation preview

Page 1: 使用硬體描述語言 HDL 設計硬體電路 參考書籍:使用 VHDL ,王志湖,滄海書局. VHDL Very High Speed Integrated Circuit HDL 由美國國防部發展出 compare

使用硬體描述語言 HDL 設計硬體電路

參考書籍:使用 VHDL ,王志湖,滄海書局

Page 2: 使用硬體描述語言 HDL 設計硬體電路 參考書籍:使用 VHDL ,王志湖,滄海書局. VHDL Very High Speed Integrated Circuit HDL 由美國國防部發展出 compare

VHDL

Very High Speed Integrated Circuit HDL 由美國國防部發展出compare to Verilog-HDL

Page 3: 使用硬體描述語言 HDL 設計硬體電路 參考書籍:使用 VHDL ,王志湖,滄海書局. VHDL Very High Speed Integrated Circuit HDL 由美國國防部發展出 compare

VHDL 基本語法架構

Use 宣告區

Entity 宣告區

Architecture 宣告區

Page 4: 使用硬體描述語言 HDL 設計硬體電路 參考書籍:使用 VHDL ,王志湖,滄海書局. VHDL Very High Speed Integrated Circuit HDL 由美國國防部發展出 compare

VHDL 基本語法架構程式架構 :

library < 零件庫名稱 > ;

use < 零件庫名稱 >.< 零件包裝名稱 >.all ;

entity < 實體名稱 > is

port(< 列出 您欲設計電路的腳位名稱 : 及接腳屬性 >);

end < 實體名稱 > ;

Use 宣告區

Entity 宣告區

Page 5: 使用硬體描述語言 HDL 設計硬體電路 參考書籍:使用 VHDL ,王志湖,滄海書局. VHDL Very High Speed Integrated Circuit HDL 由美國國防部發展出 compare

architecture < 結構名稱 > of < 實體名稱 > is-- 於此處 您可以做-- 結構宣告區域 -- 宣告內部訊號 , 分享的變數 , 及資料型態 -- 如果是以零件 (component) 方式設計 , 則可在此宣告begin -- 底下主要是做結構主體功能敘述 : -- 發生訊號的設定 -- 處理 -- 零件對應end < 結構名稱 > ;

VHDL 基本語法架構Architecture 宣告區

Page 6: 使用硬體描述語言 HDL 設計硬體電路 參考書籍:使用 VHDL ,王志湖,滄海書局. VHDL Very High Speed Integrated Circuit HDL 由美國國防部發展出 compare

簡單的 VHDL 程式library ieee; -- 宣告使用的零件庫use ieee.std_logic_1164.all; -- 使用的零件包裝

-- 宣告一個叫做全加器的實體entity FA is

port ( A,B,C :IN STD_LOGIC;

SUM,CY :OUT STD_LOGIC );

end FA;

Page 7: 使用硬體描述語言 HDL 設計硬體電路 參考書籍:使用 VHDL ,王志湖,滄海書局. VHDL Very High Speed Integrated Circuit HDL 由美國國防部發展出 compare

簡單的 VHDL 程式

-- 底下是全加器這個實體的架構architecture dataflow of FA is

begin

SUM <= ( A xor B) xor C;

CY <= (A and B) or ( B and C ) or ( A and C );

end dataflow;

Page 8: 使用硬體描述語言 HDL 設計硬體電路 參考書籍:使用 VHDL ,王志湖,滄海書局. VHDL Very High Speed Integrated Circuit HDL 由美國國防部發展出 compare

VHDL 的零件庫 (Library)及包裝 (Package)

當在設計 VHDL 電路程式時 , 我們都會需要借助於使用者介面 (User Interface)來輔助電路的合成 (Synthesize)

必需宣告使用的零件庫 (Library) 及包裝(Package) 在宣告的區域中 也許需要宣告好幾個零件庫 (Library) 及使用好幾個零件包裝 (Package)

Page 9: 使用硬體描述語言 HDL 設計硬體電路 參考書籍:使用 VHDL ,王志湖,滄海書局. VHDL Very High Speed Integrated Circuit HDL 由美國國防部發展出 compare

VHDL 的零件庫 (Library)及包裝 (Package)

VHDL 的零件庫 (Library) 及包裝(Package) 可分為 :

(1.) 系統現有的零件庫及包裝(2.) 自訂的零件庫及包裝

Page 10: 使用硬體描述語言 HDL 設計硬體電路 參考書籍:使用 VHDL ,王志湖,滄海書局. VHDL Very High Speed Integrated Circuit HDL 由美國國防部發展出 compare

VHDL 的零件庫 (Library)及包裝 (Package)

系統現有的零件庫及包裝 VHDL 發展工具都會提供兩個 IEE

E

標準零件庫 (standard libraries ): “std” "ieee"

Page 11: 使用硬體描述語言 HDL 設計硬體電路 參考書籍:使用 VHDL ,王志湖,滄海書局. VHDL Very High Speed Integrated Circuit HDL 由美國國防部發展出 compare

系統現有的零件庫及包裝零件庫名稱

包 裝 名 稱

包 裝 類 別 說 明

Std Standard 當要指定 VHDL 資料型態為 bit或 bit_vector 時 , 需先宣告本零件庫及使用本包裝

Ieee Std_logic_1164

指定有用的 VHDL 資料型態為 std_logic and std_logic_vector 時 , 需先宣告本零件庫及使用本包裝 , 同時一些時脈 (Clock) 零件也定義於此

IeeeNumeric_std 使用 std_logic_1164 包裝時

定義算術運算資料型態

Page 12: 使用硬體描述語言 HDL 設計硬體電路 參考書籍:使用 VHDL ,王志湖,滄海書局. VHDL Very High Speed Integrated Circuit HDL 由美國國防部發展出 compare

系統現有的零件庫及包裝Ieee Std_logic_

arith為了程式中需要做正負號及無正負號資料的算術運算用 , 需先定義有正負號及無正負號資料型態時 , 需先宣告本零件庫及使用本包裝

Ieee Std_logic_signed

為了 std_logic 及 std_logic_vector 做算術運算用 , 定義有正負號資料型態 , 需先宣告本零件庫及使用本包裝

Ieee Std_logic_unsigned

為了 std_logic 及 std_logic_vector 做算術運算用 , 定義無正負號資料型態 , 需先宣告本零件庫及使用本包裝

Page 13: 使用硬體描述語言 HDL 設計硬體電路 參考書籍:使用 VHDL ,王志湖,滄海書局. VHDL Very High Speed Integrated Circuit HDL 由美國國防部發展出 compare

零件庫及包裝宣告及使用的程式語法 :

語法 :library < 零件庫名稱 > ;

use < 零件庫名稱 >.< 包裝名稱 >.<all>;

說明 : 如果當您的程式中未宣告任何零件庫及使用包裝時 , 大多數發展系統會自動將設定一個預設的零件庫及使用包裝 , 或是在編譯 (Compile) 時系統會產生錯誤訊息 , 而無法完成設計

Page 14: 使用硬體描述語言 HDL 設計硬體電路 參考書籍:使用 VHDL ,王志湖,滄海書局. VHDL Very High Speed Integrated Circuit HDL 由美國國防部發展出 compare

零件庫及包裝宣告及使用的程式語法 :

例 :library ieee;

use ieee.std_logic_1164.all ;

use ieee.std_logic_signed.all ;

例題中宣告零件庫是 ieee.

宣告使用的包裝有 ieee.std_logic_1164.all及 ieee.std_logic_signed.all

Page 15: 使用硬體描述語言 HDL 設計硬體電路 參考書籍:使用 VHDL ,王志湖,滄海書局. VHDL Very High Speed Integrated Circuit HDL 由美國國防部發展出 compare

VHDL 的識別字 (Identifiers)

定義的識別字 : 實體 (Entity) 名稱 宣告埠 (Port) 內的接腳名稱 (Pin-Name) 、變數 (Vari

able) 名稱 常數 (Constant) 名稱 訊號 (Signal) 名稱 檔案 (File) 名稱 零件 (Component) 名稱 架構 (Architecture) 名稱

Page 16: 使用硬體描述語言 HDL 設計硬體電路 參考書籍:使用 VHDL ,王志湖,滄海書局. VHDL Very High Speed Integrated Circuit HDL 由美國國防部發展出 compare

VHDL 的識別字 (Identifiers)

命名原則 : 第一個字 (Letter) 必需是一般文字 在第二字以後可以是文字或數字及 _ ( 底線 ) 大小寫視為相同意義 同時切勿使用關鍵字 (Keyword) 或保留字 (Reserved Word) 最後一個字不可使用 _ _ 另外 , 在命名時最好選擇有意義且切合實際事物名稱 , 這 樣會讓 您的程式易讀性更高 , 在設計過程中 , 也較容易記 憶而不必往返宣告區查看已命名的名稱

Page 17: 使用硬體描述語言 HDL 設計硬體電路 參考書籍:使用 VHDL ,王志湖,滄海書局. VHDL Very High Speed Integrated Circuit HDL 由美國國防部發展出 compare

VHDL 的保留字ABS COMPNENT GUARDED

ACCESS CONFIGURATION IF

AFTER CONSTANT IMPUREALIAS DISCONNECT INALL DOWNTO INERTIAL

AND ELSE INOUTARCRITECTURE ELSIF IS

ARRAY END LABEL

Page 18: 使用硬體描述語言 HDL 設計硬體電路 參考書籍:使用 VHDL ,王志湖,滄海書局. VHDL Very High Speed Integrated Circuit HDL 由美國國防部發展出 compare

VHDL 的保留字ASSERT ENTITY LIBRARY

ATTRIBUTE EXIT LINKAGE

BEGIN FILE LITERAL

BLOCK FOR LOOPBODY FUNCTION MAPBUFFER GENERATE MODBUS GENERIC NANDCASE GROUP NEW

Page 19: 使用硬體描述語言 HDL 設計硬體電路 參考書籍:使用 VHDL ,王志湖,滄海書局. VHDL Very High Speed Integrated Circuit HDL 由美國國防部發展出 compare

VHDL 的保留字NEXT RANGE SUBTYPE

NOR RECORD THEN

NOT REGISTER TO

NULL REJECT TRANSPORT

OF REM TYPE

ON REPORT UNAFFECTED

OPEN RETURN UNITS

OR ROL UNTIL

Page 20: 使用硬體描述語言 HDL 設計硬體電路 參考書籍:使用 VHDL ,王志湖,滄海書局. VHDL Very High Speed Integrated Circuit HDL 由美國國防部發展出 compare

VHDL 的保留字OTHERS ROR USE

OUT SELECT VARABLE

PACKAGE SEVERITY WAIT

PORT SHARED WHEN

POSTONED SIGNAL WHILE

PROCEDURE SLA WITH

PROCESS SRA XNOR

PURE SRL XOR

Page 21: 使用硬體描述語言 HDL 設計硬體電路 參考書籍:使用 VHDL ,王志湖,滄海書局. VHDL Very High Speed Integrated Circuit HDL 由美國國防部發展出 compare

VHDL 的識別字命名例 例 : 底下幾個命名是正確的

enable_bits Sel IO_1

例 : 底下幾個命名是不正確 的 2bit 字首非數字 If 為保留字 Ena bits 中間不得空白 IO__ 字尾有雙底線

Page 22: 使用硬體描述語言 HDL 設計硬體電路 參考書籍:使用 VHDL ,王志湖,滄海書局. VHDL Very High Speed Integrated Circuit HDL 由美國國防部發展出 compare

實體 (Entity)

VHDL 的實體 (Entity) 宣告的語法 : ENTITY < 實體名稱 > IS

GENERIC( 字串式參數名稱 : string := 預設值 ;

整數型參數名稱 : integer := 預設值 );

PORT(

腳位名稱 1, 腳位名稱 n : 輸入出性質 包裝性質 ;

陣列腳位名稱 1, 陣列腳位名稱 m : 輸入出性質 包 裝性質 ( 向量區間 );

END 實體名稱 ;

Page 23: 使用硬體描述語言 HDL 設計硬體電路 參考書籍:使用 VHDL ,王志湖,滄海書局. VHDL Very High Speed Integrated Circuit HDL 由美國國防部發展出 compare

實體 (Entity)

說明 :

1. Entity 後面必需宣告實體名稱且必需符合識別字命名規則。

2. 隨後的 GENERIC 主要用在可調整硬體架構大小方式的設計時 (Scalable Design) 用。

3. 您必需宣告這個設計實體中埠 (Port) 宣告後的輸入、輸出接腳 , 每支接腳必須給予名稱及其腳位屬性與資料型態

Page 24: 使用硬體描述語言 HDL 設計硬體電路 參考書籍:使用 VHDL ,王志湖,滄海書局. VHDL Very High Speed Integrated Circuit HDL 由美國國防部發展出 compare

VHDL 的電路架構 (Architecture)

VHDL 構成電路訊號的連接設計 , 主要在這個 architecture 部分來進行 , 它必需配合它所屬的實體來設計訊號的連接 Architecture 的語法

architecture < 結構名稱 > of < 實體名稱 > is

-- 於此處 您可以做以下宣告事項 :-- 結構宣告區域 -- 宣告內部訊號 , 分享的變數 , 及資料型態

Page 25: 使用硬體描述語言 HDL 設計硬體電路 參考書籍:使用 VHDL ,王志湖,滄海書局. VHDL Very High Speed Integrated Circuit HDL 由美國國防部發展出 compare

VHDL 的電路架構 (Architecture)

-- 如果是以零件 (component) 方式設計 , 則可在此宣告

begin -- 底下主要是做結構主體功能敘述 : -- 發生訊號的設定 -- 處理 -- 零件對應

end < 結構名稱 > ;

Page 26: 使用硬體描述語言 HDL 設計硬體電路 參考書籍:使用 VHDL ,王志湖,滄海書局. VHDL Very High Speed Integrated Circuit HDL 由美國國防部發展出 compare

註解

-- 在 VHDL 中我們提供了” --“ ( 雙減號 )做為駐解的前置指令 , 在雙減號後 您可以對 您的程式加註說明

在任何設計中 , 總是免不了需要對一些特殊設計部分加以註解說明一番 , 這是非常重要的工作

做好註解工作將有助於 您日後電路除錯及維修 , 因此請 您做好註解的工作