使用硬体描述语言HDL 设计硬体电路_第1页
使用硬体描述语言HDL 设计硬体电路_第2页
使用硬体描述语言HDL 设计硬体电路_第3页
使用硬体描述语言HDL 设计硬体电路_第4页
使用硬体描述语言HDL 设计硬体电路_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

使用硬體描述語言HDL

設計硬體電路參考書籍:使用VHDL,王志湖,滄海書局VHDLVeryHighSpeedIntegratedCircuitHDL

由美國國防部發展出comparetoVerilog-HDLVHDL基本語法架構

Use宣告區Entity宣告區Architecture宣告區VHDL基本語法架構程式架構:library<零件庫名稱>;use<零件庫名稱>.<零件包裝名稱>.all;entity<實體名稱>is

port(<列出您欲設計電路的腳位名稱:及接腳屬性>);end<實體名稱>;Use宣告區Entity宣告區architecture<結構名稱>of<實體名稱>is--於此處您可以做--結構宣告區域

--宣告內部訊號,分享的變數,及資料型態

--如果是以零件(component)方式設計,則可在此宣告begin--底下主要是做結構主體功能敘述:

--發生訊號的設定

--處理

--零件對應end<結構名稱>;VHDL基本語法架構Architecture宣告區簡單的VHDL程式libraryieee;--宣告使用的零件庫useieee.std_logic_1164.all;--使用的零件包裝

--宣告一個叫做全加器的實體entityFAisport(A,B,C:INSTD_LOGIC;SUM,CY:OUTSTD_LOGIC);endFA;簡單的VHDL程式

--底下是全加器這個實體的架構architecturedataflowofFAisbegin

SUM<=(AxorB)xorC;

CY<=(AandB)or(BandC)or(AandC);

enddataflow;

VHDL的零件庫(Library)

及包裝(Package)

當在設計VHDL電路程式時,我們都會需要借助於使用者介面(UserInterface)來輔助電路的合成(Synthesize)必需宣告使用的零件庫(Library)及包裝(Package)在宣告的區域中也許需要宣告好幾個零件庫(Library)及使用好幾個零件包裝(Package)VHDL的零件庫(Library)

及包裝(Package)

VHDL的零件庫(Library)及包裝(Package)可分為:(1.)系統現有的零件庫及包裝(2.)自訂的零件庫及包裝VHDL的零件庫(Library)

及包裝(Package)

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

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

系統現有的零件庫及包裝零件庫名稱包裝名稱包裝類別說明StdStandard當要指定VHDL資料型態為bit或bit_vector時,需先宣告本零件庫及使用本包裝IeeeStd_logic_1164指定有用的VHDL資料型態為std_logicandstd_logic_vector時,需先宣告本零件庫及使用本包裝,同時一些時脈(Clock)零件也定義於此IeeeNumeric_std使用std_logic_1164包裝時定義算術運算資料型態系統現有的零件庫及包裝IeeeStd_logic_arith為了程式中需要做正負號及無正負號資料的算術運算用,需先定義有正負號及無正負號資料型態時,需先宣告本零件庫及使用本包裝IeeeStd_logic_signed為了std_logic及std_logic_vector做算術運算用,定義有正負號資料型態,需先宣告本零件庫及使用本包裝IeeeStd_logic_unsigned為了std_logic及std_logic_vector做算術運算用,定義無正負號資料型態,需先宣告本零件庫及使用本包裝零件庫及包裝宣告及使用的程式語法:

語法:library<零件庫名稱>;use<零件庫名稱>.<包裝名稱>.<all>;

說明:

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

例:library

ieee;useieee.std_logic_1164.all;useieee.std_logic_signed.all;例題中宣告零件庫是ieee.宣告使用的包裝有ieee.std_logic_1164.all及ieee.std_logic_signed.all

VHDL的識別字(Identifiers)

定義的識別字:實體(Entity)名稱宣告埠(Port)內的接腳名稱(Pin-Name)、變數(Variable)名稱常數(Constant)名稱訊號(Signal)名稱檔案(File)名稱零件(Component)名稱架構(Architecture)名稱

VHDL的識別字(Identifiers)

命名原則:第一個字(Letter)必需是一般文字在第二字以後可以是文字或數字及_(底線)大小寫視為相同意義同時切勿使用關鍵字(Keyword)或保留字(Reserved

Word)最後一個字不可使用__另外,在命名時最好選擇有意義且切合實際事物名稱,這樣會讓您的程式易讀性更高,在設計過程中,也較容易記憶而不必往返宣告區查看已命名的名稱

VHDL的保留字ABSCOMPNENTGUARDEDACCESSCONFIGURATIONIFAFTERCONSTANTIMPUREALIASDISCONNECTINALLDOWNTOINERTIALANDELSEINOUTARCRITECTUREELSIFISARRAYENDLABELVHDL的保留字ASSERTENTITYLIBRARYATTRIBUTEEXITLINKAGEBEGINFILELITERALBLOCKFORLOOPBODYFUNCTIONMAPBUFFERGENERATEMODBUSGENERICNANDCASEGROUPNEWVHDL的保留字NEXTRANGESUBTYPENORRECORDTHENNOTREGISTERTONULLREJECTTRANSPORTOFREMTYPEONREPORTUNAFFECTEDOPENRETURNUNITSORROLUNTILVHDL的保留字OTHERSRORUSEOUTSELECTVARABLEPACKAGESEVERITYWAITPORTSHAREDWHENPOSTONEDSIGNALWHILEPROCEDURESLAWITHPROCESSSRAXNORPURESRLXORVHDL的識別字命名例例:

底下幾個命名是正確的

enable_bits

SelIO_1

例:

底下幾個命名是不正確的

2bit字首非數字

If為保留字

Enabits中間不得空白

IO__

字尾有雙底線實體(Entity)

VHDL的實體(Entity)宣告的語法:

ENTITY<實體名稱>IS

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

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

PORT(

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

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

END

實體名稱

;

實體(Entity)

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

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

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

VHDL的電路架構(Architecture)

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

architecture<結構名稱>of<實體名稱>is--於此處您可以做以下宣告事項:--結構宣告區域

--宣告內部訊號,分享的變數,及資料型態

VHDL的電路架構(Architecture)

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

begin--

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论