Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation
Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement.Téléchargez la présentation en cliquant sur ce lien.Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.
数据类型 • 枚举类型:用户定义的数据类型例:TYPE traffic_light IS (red, yellow,green )TYPE int ISRANGE 0 TO 100 • 数组类型:分一维数组和二维数组,限定性和非限定性数组例: TYPE Bit_Vector IS ARRAY (Natural RANGE<>) OF Bit; TYPE Word IS ARRARY (31 downto 0) OF Bit; • SUBTYPE:子类型,一般用来对其父类型加以限制例: SUBTYPE Std_Logic IS resolved Std_Ulogic • TIME:时间类型,范围和整型一样,表达时要包括数值和单位两部分。单位包括:fs、ps、ns、us、ms、sec、min、hr。一般用于仿真
数据类型 • 记录类型 TYPE Month_Name IS (Jan,Fab,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec); TYPE date IS RECORD day : Integer RANGE 1 TO 31; month : Month_Name; year : Integer RANGE 0 to 3000; END RECORD; VARIABLE today : date; today : =(15, may, 1995);
my_design ad[11:0] d[11:0] a[11:0] oe int clk as 练习一 • 编写包含以下内容的实体代码 端口 D 为12位输入总线 端口 OE 和 CLK 都是1位输入 端口 AD 为 12位双向总线 端口 A为12位输出总线 端口 INT 是1位输出 端口 AS 是一位输出同时被用作内部反馈
my_design ad[11:0] d[11:0] a[11:0] oe int clk as 练习一答案 LIBRARY ieee; USE ieee.std_logic_1164.ALL; ENTITY my_design IS PORT ( d: IN std_logic_vector(11 DOWNTO 0); oe, clk: IN std_logic; ad: INOUT std_logic_vector(11 DOWNTO 0); a: OUT std_logic_vector(11 DOWNTO 0); int: OUT std_logic; as: BUFFER std_logic); END my_design;
构造体—行为描述举例 • 2 X 8 Input AND gate: ENTITY black_box IS PORT ( a, b: IN std_logic_vector(7 DOWNTO 0); y: OUT std_logic_vector(7 DOWNTO 0)); END black_box; ARCHITECTURE example OF black_box IS BEGIN y <= a AND b; END example;
数据对象-信号 • 可代表连线、内连元件、或端口 • 用“<=”来给信号赋值 • SIGNALSIGNAL Count: Bit_Vector(3 downto 0); IF Rising_Edge(clk) THEN Count<=Count+1; END IF; • 信号在Package、Entity、Architecture 中声明
PROCESS PROCESS SIGNAL SIGNAL SIGNAL REG SIGNAL MUX 数据对象-信号
a b e g 端口信号 在构造体内声明 的内部连接信号 f c d 信号举例 LIBRARYieee; USEieee.std_logic_1164.all; ENTITYsimp IS PORT(a, b, c, d : INStd_Logic; g : OUTStd_Logic); ENDsimp; ARCHITECTURElogic OFsimp IS SIGNALe,f : Std_Logic; BEGIN e <= a or b; f<=not(c or d); g <=e and f; ENDlogic;
s 2 a x b mux c d 布尔表达式 • VHDL支持所有的标准逻辑运算符 • AND, OR, NOT, XOR, XNOR, NAND • 例:x <=(a AND NOT(s(1)) AND NOT(s(0))) OR (b AND NOT(s(1)) AND s(0)) OR (c AND s(1) AND NOT(s(0))) OR (d AND s(1) AND s(0)) ; y <= a OR b OR c;
With_Select_Then选择信号语句 • 所有的“WHEN”子句必须是互斥的 • 一般用 “When Others”来处理未考虑到的情况 • 只有一个参考信号和赋值符 (<=) • 每一子句结尾是逗号,最后一句是分号 WITH selection_signal SELECT signal_name <= value_1 WHEN value_a, value_2 WHEN value_b, ... value_n WHEN value_n, value_x WHEN OTHERS;
s 是 Std_Logic数据类型。 其值包括‘0’,’1’,’X’,’Z’等 s 2 a x b mux c d 加Others语句 With_Select_Then语句举例 LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY cmpl_sig IS PORT ( a, b,c,d,s : IN STD_LOGIC; x : OUT STD_LOGIC); END cmpl_sig; ARCHITECTURE logic OF cmpl_sig IS BEGIN WITH s SELECT x <=a WHEN “00”, b WHEN “01”, c WHEN “10”, d WHEN OTHERS;
表示或逻辑 With_Select_Then语句举例 • 每个WHEN子句可以包含多个条件: WITH s SELECT x <= a WHEN ”000” | “001” | “010”, b WHEN "101" | "111", c WHEN OTHERS;
When_Else选择信号语句 • 根据指定条件对信号赋值,条件可以为任意表达式 • 根据条件的出现的先后次序隐含优先权 • 最后一个 ELSE子句隐含了所有未列出的条件 • 每一子句的结尾没有标点,只有最后一句有分号signal_name <= value_1 WHEN condition1 ELSE value_2 WHEN condition2 ELSE ... value_n WHEN conditionn ELSE value_x;
隐含了优先权 隐含了所有未列出的条件 s 2 a x b mux c d When_Else语句举例 x <= a when (s = “00”) else b when (s = “01”) else c when (s = “10”) else d ;
Connexion au compte
Connectez-vous pour publier votre contenu sur SlideServe.