请问关于ARITH程序包的问题

2019-07-16 01:33发布

  1. LIBRARY IEEE;
  2. USE IEEE.STD_LOGIC_1164.ALL;
  3. USE IEEE.STD_LOGIC_ARITH.ALL;
  4. USE IEEE.STD_LOGIC_UNSIGNED.ALL;
  5. ENtiTY cnt4_2 IS
  6. PORT(pst,clk,rst,enable,load:IN STD_LOGIC;
  7. data:IN STD_LOGIC_VECTOR(3 DOWNTO 0);
  8. cnt:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0));
  9. END cnt4_2;
  10. ARCHITECTURE bev OF cnt4_2 IS
  11. BEGIN
  12. PROCESS(pst,clk,rst)
  13. BEGIN
  14. IF pst='1' THEN
  15. cnt<=(others=>'1');
  16. ELSIF rst='1' THEN
  17. cnt<=(others=>'0');
  18. ELSIF clk'EVENT AND clk='1' THEN
  19. IF load='1' THEN
  20. cnt<=data;
  21. ELSIF enable='1' THEN
  22. cnt<=cnt+1;
  23. END IF;
  24. END IF;
  25. END PROCESS;
  26. END bev;
复制代码这是四位二进制技术器的VHDL程序,请问ARITH这个包是做什么用的呢???还有,那个cnt<=(others=>'0'),这种写法就是others=>'0'这种用法是如何理解呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
1290060038
1楼-- · 2019-07-16 05:35
                           
1290060038
2楼-- · 2019-07-16 08:19
 精彩回答 2  元偷偷看……
Clivexp
3楼-- · 2019-07-16 09:00
因为cnt的类型是std_logic_vector, 所以要表示cnt等于0,就应该是cnt<=(others=>'0')这种写法。
它等效于integer型的cnt,写为cnt<=0;
yoonssica
4楼-- · 2019-07-16 13:56
Clivexp 发表于 2013-7-18 21:29
因为cnt的类型是std_logic_vector, 所以要表示cnt等于0,就应该是cnt'0')这种写法。
它等效于integer型的cn ...

哦~~~~~~~就是没见过这样表示,谢谢亲~~~~~
yoonssica
5楼-- · 2019-07-16 16:00
Clivexp 发表于 2013-7-18 21:29
因为cnt的类型是std_logic_vector, 所以要表示cnt等于0,就应该是cnt'0')这种写法。
它等效于integer型的cn ...

请问程序中的ARITH包是做什么用的呢?
yoonssica
6楼-- · 2019-07-16 18:24
Clivexp 发表于 2013-7-18 21:29
因为cnt的类型是std_logic_vector, 所以要表示cnt等于0,就应该是cnt'0')这种写法。
它等效于integer型的cn ...

也就是相当于将cnt的每个位都付0呗???

一周热门 更多>