A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

abs access after alias all and architecture array assert attribute begin block body buffer bus case component configuration constant disconnect downto.

Apresentações semelhantes


Apresentação em tema: "abs access after alias all and architecture array assert attribute begin block body buffer bus case component configuration constant disconnect downto."— Transcrição da apresentação:

1

2 abs access after alias all and architecture array assert attribute begin block body buffer bus case component configuration constant disconnect downto else elsif end entity exit file for function generate generic group guarded if impure in inertial inout is label library linkage literal loop map mod nand new next nor not null of on open or others out package port postponed procedure process pure range record register reject rem report return rol select severity signal shared sla sll sra srl subtype then to transport type unaffected units until use variable wait when while with xnor xor

3 Operadores Operador Operação operando esquerdo operando direito tipo do resultado ** exponenciação inteiro/virgula flutuante inteiro mesmo que esquerdo abs valor absoluto numérico mesmo que operando not negação bit/boolean ou array 1-D de bit/boolean mesmo que operando multiplicação inteiro/virgula flutuante mesmo que o esquerdo mesmo que o operando físico inteiro/virgula flutuante mesmo que o esquerdo inteiro/virgula flutuante físico mesmo que o direito / divisão inteiro/virgula flutuante mesmo que o esquerdo mesmo que o operando físico inteiro/virgula flutuante mesmo que o esquerdo físico mesmo que o esquerdo inteiro universal mod módulo inteiro mesmo que o esquerdo mesmo que o operando rem resto inteiro mesmo que o esquerdo mesmo que o operando comentários para ISE Xilinx – divisão só para o operando direito igual a 2 n

4 Operadores Operador Operação operando esquerdo operando direito tipo do resultado + identidade numérico mesmo que operando - negação numérico mesmo que operando + adição numérico mesmo que esquerdo mesmo que operando - subtracção numérico mesmo que esquerdo mesmo que operando & concatenação array 1-D mesmo que esquerdo mesmo que operando array 1-D tipo elemento do operando esquerdo mesmo que esquerdo tipo elemento do operando direito array 1-D mesmo que direito sll shift-left lógico array 1-D/bit/boolean inteiro mesmo que esquerdo srl shift-right/lógico sla shift-left/aritmético sra shift-right/aritmético rol rotar esquerdo srl rotar direito - - -

5 Operadores Operador Operação operando esquerdo operando direito tipo do resultado = comparar/ igual qualquer excepto ficheiro mesmo que o esquerdo boolean /= comparar/ não igual and AND lógico array 1_D do qualquer tipo discreto / bit / boolean mesmo que o esquerdo mesmo que o operando or OR lógico nand AND lógico nor OR lógico xor XOR lógico xnor XOR lógico < menor que escalar ou array 1-D do mesmo que o esquerdo boolean qualquer tipo discreto <= menor ou igual que > maior que >= maior ou igual que Prioridade max min

6 o tipo numérico = inteiro ou com virgula flutuante ou físico; o tipo físico = unidades físicas (ex. ns, ms, ohm, Kohm, etc.). Comentários: os tipos físicos não são suportados por Xilinx ISE.

7 tipos escalaresaccessficheiroscompósitos discretos com vírgula flutuante físicosarray estrutura (record) inteiros enumerações severity_level caracteres boolean bit tempo unconstrainedconstrained bit_vectorstring

8 & ( ) * +, -. / : ; | => ** := /= >= atribuição para variáveis atribuição para sinais

9 inteiros: 2# #16#A9#8#251# E e-03 reais: Os caracteres em VHDL são escritos entre plicas : Fq,

10 Representam sequências de caracteres e são escritas entre aspas: Esta e uma Linha 1 e & comprida. - representam sequências de bits; - começam com um caracter (B, b, O, o, X, x) que representa a base.; - escrevem-se entre aspas; - podem incluir _. B0010 b1111_1111 O123 o123 XABCDE x12ab x0a = b0000_1010 o12

11 Um objecto é um item nomeado que pertence a um determinado tipo.

12 - precisam de ser declaradas antes de poderem ser utilizadas. A declaração introduz o nome do objecto, define o seu tipo e pode especificar o valor inicial. constant a : string := "Linha ""1"" e" & "comprida." ; constant numero_de_bits : integer := 4; constant dados : std_logic_vector(11 downto 0) := b"0000_1111_1010"; variable var1 : bit; variable var2 : std_logic := '1'; assume o valor inicial por defeito que depende do tipo da variável

13 As declarações de variáveis e constantes aparecem normalmente na parte declarativa de processos: architecture Behavioral of reg4 is begin process (d0, d1, d2, d3, en, clk) is variable sd0, sd1, sd2, sd3 : bit; begin if en = '1' and clk = '1' then sd0 := d0; sd1 := d1; sd2 := d2; sd3 := d3; end if; s0 <= sd0; s1 <= sd1; s2 <= sd2; s3 <= sd3; end process; end Behavioral; A atribuição de um valor à variável (:=) substitui imediatamente o valor anterior desta variável !!! A atribuição de um valor a um sinal (<=) funciona de maneira diferente !!!

14 entity var_sig is port (clk, reset: in std_logic; output : out std_logic); end entity var_sig; architecture behav of var_sig is begin process (clk) variable temp_var : std_logic; begin temp_var := '1'; if (temp_var = '1') then output <= temp_var; else output <= '0'; end if; temp_var := '0'; end process; end behav;

15 entity var_sig is port (clk, reset: in std_logic; output : out std_logic); end entity var_sig; architecture behav of var_sig is signal temp_sig : std_logic; begin test: process (clk) begin temp_sig <= '1'; if (temp_sig = '1') then output <= temp_sig; else output <= '0'; end if; temp_sig <= '0'; end process test; end behav;

16 signal sig : std_logic_vector(1 downto 0); signal sig_sig, var_sig : std_logic; begin process(clk48,rst) variable var : std_logic_vector(1 downto 0); begin if rst= '0' then var_sig <= '0'; var := (others=> '0'); elsif rising_edge(clk48) then var_sig <= '1'; var := var + 1; if var = "01" then var := "00"; var_sig <= '0'; else null; end if; var := "00"; end process; process(clk48,rst) begin if rst= '0' then sig_sig <= '0'; sig '0'); elsif rising_edge(clk48) then sig_sig <= '1';sig <= sig + 1; if sig = "01" then sig <= "00"; sig_sig <= '0'; else null; end if; sig <= "00"; end process; var_sig = 0 sig_sig = 1

17 tipos escalaresaccessficheiroscompósitos discretos com virgula flutuante físicosarray estrutura (record) inteiros enumerações severity_level caracteres boolean bit tempo unconstrainedconstrained bit_vectorstring


Carregar ppt "abs access after alias all and architecture array assert attribute begin block body buffer bus case component configuration constant disconnect downto."

Apresentações semelhantes


Anúncios Google