MAXPLUS2中,USE IEEE.STD_LOGIC_ARITH.ALL和USE IEEE.STD_LOGIC_UNSIGNED.ALL各有什么作用?
答案:2 悬赏:10 手机版
解决时间 2021-01-06 10:23
- 提问者网友:皆是孤独
- 2021-01-05 12:31
MAXPLUS2中,USE IEEE.STD_LOGIC_ARITH.ALL和USE IEEE.STD_LOGIC_UNSIGNED.ALL各有什么作用?
最佳答案
- 五星知识达人网友:春色三分
- 2021-01-05 12:51
USE IEEE.STD_LOGIC_UNSIGNED.ALL
包含一个函数,使“+”两边可以是不同类型相加,所得结果为标准逻辑矢量
例如这个十进制可逆计数器中的:qi<=qi+1,qi和1是不同类型的相加
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity addsub_cnt10 is
port(rst,clk,addsub:in std_logic;
c:out std_logic;
q:out std_logic_vector(3 downto 0));
end;
architecture one of addsub_cnt10 is
signal qi:std_logic_vector(3 downto 0);
begin
process(clk,rst,addsub)
begin
if rst='1' then qi<=(others=>'0'); c<='0';
elsif clk'event and clk='1' then
if addsub='1' then
if qi="1001" then
qi<=(others=>'0'); c<='1';
else qi<=qi+1; c<='0';
end if;
else
if qi="0000" then
qi<="1001"; c<='1';
else qi<=qi-1; c<='0';
end if;
end if;
end if;
end process;
q<=qi;
end;
USE IEEE.STD_LOGIC_ARITH.ALL这个库没用过,找到一个并行加法器用到这个,你可以参考下
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
--并行加法器
-- Uncomment the following lines to use the declarations that are
-- provided for instantiating Xilinx primitive components.
--library UNISIM;
--use UNISIM.VComponents.all;
entity bingxingjiafaqi is
Port ( a : in std_logic_vector(3 downto 0);
b : in std_logic_vector(3 downto 0);
cin : in std_logic;
s : out std_logic_vector(3 downto 0);
cout : out std_logic);
end bingxingjiafaqi;
包含一个函数,使“+”两边可以是不同类型相加,所得结果为标准逻辑矢量
例如这个十进制可逆计数器中的:qi<=qi+1,qi和1是不同类型的相加
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity addsub_cnt10 is
port(rst,clk,addsub:in std_logic;
c:out std_logic;
q:out std_logic_vector(3 downto 0));
end;
architecture one of addsub_cnt10 is
signal qi:std_logic_vector(3 downto 0);
begin
process(clk,rst,addsub)
begin
if rst='1' then qi<=(others=>'0'); c<='0';
elsif clk'event and clk='1' then
if addsub='1' then
if qi="1001" then
qi<=(others=>'0'); c<='1';
else qi<=qi+1; c<='0';
end if;
else
if qi="0000" then
qi<="1001"; c<='1';
else qi<=qi-1; c<='0';
end if;
end if;
end if;
end process;
q<=qi;
end;
USE IEEE.STD_LOGIC_ARITH.ALL这个库没用过,找到一个并行加法器用到这个,你可以参考下
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
--并行加法器
-- Uncomment the following lines to use the declarations that are
-- provided for instantiating Xilinx primitive components.
--library UNISIM;
--use UNISIM.VComponents.all;
entity bingxingjiafaqi is
Port ( a : in std_logic_vector(3 downto 0);
b : in std_logic_vector(3 downto 0);
cin : in std_logic;
s : out std_logic_vector(3 downto 0);
cout : out std_logic);
end bingxingjiafaqi;
全部回答
- 1楼网友:一袍清酒付
- 2021-01-05 13:24
这种情况很可能是这种问题:
输入法或者字体编码,软件不承认。造成这种问题的原因很可能是程序中有一部分代码是从其他地方粘贴过来的。
建议你新建一个空白文档,把程序按照原程序手打出来试试。
输入法或者字体编码,软件不承认。造成这种问题的原因很可能是程序中有一部分代码是从其他地方粘贴过来的。
建议你新建一个空白文档,把程序按照原程序手打出来试试。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯