微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > VHDL的程序包

VHDL的程序包

时间:10-02 整理:3721RD 点击:
请问各位大侠,能够告知一下VHDL中的ARITH包、UNSIGNED包和SIGNED包的功能呢?程序中总是调用这些包,可实在是不清楚调用的原因。
比如说,如下这个程序,UNSIGNED包的作用是什么呢?

  1. LIBRARY IEEE;
  2. USE IEEE.STD_LOGIC_1164.ALL;
  3. USE IEEE.STD_LOGIC_UNSIGNED.ALL;

  4. ENTITY JOYSTICK IS
  5. PORT(
  6. CLK: IN STD_LOGIC;
  7. RESET: IN STD_LOGIC;
  8. DATA: IN STD_LOGIC_VECTOR(4 DOWNTO 0);
  9. LED: OUT STD_LOGIC_VECTOR(3 DOWNTO 0)
  10. );


  11. END JOYSTICK;

  12. ARCHITECTURE LED OF JOYSTICK IS
  13. BEGIN

  14. process( DATA )
  15. begin
  16. if(DATA= "11110") then
  17. LED <= "0001";
  18. elsif(DATA= "11101") then
  19. LED <= "0010";
  20. elsif(DATA= "11011") then
  21. LED <= "0011";
  22. elsif(DATA= "10111") then
  23. LED <= "0100";
  24. elsif(DATA= "01111") then
  25. LED <= "0101";
  26. else LED <= "0000";
  27. end if;
  28. end process;

  29. END LED;

复制代码

1)无符号数据类型(UNSIGNED TYPE)
            UNSIGNED数据类型代表一个无符号的数值,在综合器中,这个数值被解释为一个二进制数,这个二进制数的最左位是其最高位。

2) 有符号数据类型(SIGNED TYPE)
            SIGNED数据类型表示一个有符号的数值,综合器将其解释为补码,此数的最高位是符号位,例如:SIGNED(“0101”) 代表+5,5;SIGNED(“1101”) 代表-5。

VHDL定义了四个常用的程序包:
     ? std_logic_1164 (std_logic types &  related functions),这个是标准逻辑类型和相关函数运算包
       ? std_logic_arith (arithmetic functions),这个是运算函数包
       ? std_logic_signed (signed arithmetic functions)这个是有符号数运算函数包
       ? std_logic_unsigned (unsigned  rithmetic functions),这个是无符号数运算函数包

VHDL定义了四个常用的程序包:
     ? std_logic_1164 (std_logic types &  related functions),这个是标准逻辑类型和相关函数运算包
       ? std_logic_arith (arithmetic functions),这个是运算函数包
       ? std_logic_signed (signed arithmetic functions)这个是有符号数运算函数包
       ? std_logic_unsigned (unsigned  rithmetic functions),这个是无符号数运算函数包

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top