VHDL的程序包

2019-07-16 01:28发布

请问各位大侠,能够告知一下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;

复制代码
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
z00
1楼-- · 2019-07-16 05:34
本帖最后由 z00 于 2014-4-15 20:12 编辑

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

2) 有符号数据类型(SIGNED TYPE)
            SIGNED数据类型表示一个有符号的数值,综合器将其解释为补码,此数的最高位是符号位,例如:SIGNED(“0101”) 代表+5,5;SIGNED(“1101”) 代表-5。
youzizhile
2楼-- · 2019-07-16 07:20
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),这个是无符号数运算函数包
youzizhile
3楼-- · 2019-07-16 12:11
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),这个是无符号数运算函数包

一周热门 更多>