FPGA讀書筆記5
VHDL 語法介紹
設計實體和配置
設計實體由實體宣告和主體組成。配置由配置宣告定義。
實體宣告
實體宣告定義了實體和環境互動的介面。它可以被複用、例項如下所示.
entity_declaration ::=
entity identifier is
entity_header
entity_declarative_part
[ begin
entity_statement_part ]
end [ entity] [ *entity*_simple_name ] ;
entity header
entity header定義了介面相關資訊。
entity_header::=
[*formal*_generic_clause]
[*formal*_port_clasuse]
generic_clasuse::=
generic(generic_list);
port_clasuse::=
port(port_list);
generic list定義了一些常量,port定義了輸入輸出介面。有些情況下,它們都是外部可見的。例如:
entity AndGate is
generic
(N:Natural:=2);
port
(Inputs: in Bit_Vector (1 to N);
Result : out Bit;
end entity AndGate
generic和port list均由介面列表定義。介面列表定義虛埠(formal port)。虛埠有幾種工作模式——in,out,inout,buffer和linkage,它們在例項化時有各自的限制。
port_list::= *port*_interface_list;
generic_list::= *generic*_interface_list;
1. in可以被例項化為in,out或者buffer
2. out可以被例項化為 out或者inout
3. inout 只能為inout
4. buffer只能為buffer
5. linkage可以為任何模式
entity declarative part
實體宣告部分包含以下部分。
entity_declarative_part::=
{entity_declarative_item}
entity_declarative_item::=
subprogram_declaration
|subprogram_body
|type_declaration
|subtype_declaration
|constant_declaration
|signal_declaration
|*shared*_variable_declaration
|file_declaration
|alias_declaration
|attribute_specification
|disconnection_specification
|use_clause
|group_template_declaration
|group_declaration
小結一下,包含header和declaration的實體例子如下,
entity ROM is
port( Addr: in Word;
Data:out Word;
Sel: in Bit);
type Instruction is array (1 to 5) of Natural;
type Program is array (Natural range<>) of Instruction;
end ROM
實體陳述
這個部分包含了併發的斷言。所有的陳述必須是被動的,它可以監視執行狀態或者實體的工作特性。也就是測試。例如:
entity Latch is
port ( Din: in Word;
Dout: out Word;
Load: in Bit);
constant Setup:Time:= 12ns;
constant PulseWidth:Time:=50 ns;
use Work.TimingMonitors.all;
begin
assert Clk='1' or Clk'Delayed'Stable(PulseWidth);
CheckTiming(Setup,Din,Load,Clk);
end;
相關文章
- FPGA讀書筆記3FPGA筆記
- FPGA讀書筆記4FPGA筆記
- FPGA讀書筆記2FPGA筆記
- FPGA讀書筆記1FPGA筆記
- 讀書筆記...筆記
- 讀書筆記筆記
- 《讀書與做人》讀書筆記筆記
- <轉>oracle效能調整讀書筆記(5)Oracle筆記
- 程式碼整潔之道--讀書筆記(5)筆記
- Cucumber讀書筆記筆記
- 散文讀書筆記筆記
- HTTP 讀書筆記HTTP筆記
- CoreJava讀書筆記-------Java筆記
- flask讀書筆記Flask筆記
- Vue讀書筆記Vue筆記
- MONGODB 讀書筆記MongoDB筆記
- Qt讀書筆記QT筆記
- Node讀書筆記筆記
- SAP讀書筆記筆記
- YII讀書筆記筆記
- iptables 讀書筆記筆記
- Makefile 讀書筆記筆記
- mysql讀書筆記MySql筆記
- 鎖讀書筆記筆記
- dataguard讀書筆記筆記
- 讀書筆記3筆記
- 讀書筆記2筆記
- postgres 讀書筆記筆記
- 讀書筆記5-資料儲存篇筆記
- 18-《ARKit by Tutorials》讀書筆記5:特殊物理效果筆記
- 【讀書筆記】XHTML與HTML5的差異筆記HTML
- 《Effective C++》第5章 實現-讀書筆記C++筆記
- Application=Code+Markup 讀書筆記 5-7APP筆記
- 《程式碼大全2》讀書筆記2(5-6)筆記
- MySQL 8.0 Reference Manual(讀書筆記94節--Replication(5))MySql筆記
- 《重構》讀書筆記筆記
- webpackDemo讀書筆記Web筆記
- PMBook讀書筆記(一)筆記