USE IEEE.STD_LOGIC_ARITH.ALL是什么意思 用来干嘛的

作者&投稿:辕叙 (若有异议请与网页底部的电邮联系)
MAXPLUS2中,USE IEEE.STD_LOGIC_ARITH.ALL和USE IEEE.STD_LOGIC_UNSIGNED.ALL各有什么作用?~

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'0'); c<='0';
elsif clk'event and clk='1' then
if addsub='1' then
if qi="1001" then
qi'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;

library ieee; --库说明
use ieee.std_logic_1164.all;--前面这几行,是用的package 即数据库
use ieee.std_logic_unsigned.all;--
use ieee.std_logic_arith.all;--
entity fenx is --实体说明,fenx 实体名
port --端口
(clk:in std_logic;--clk为端口名,in 为端口类型,这里是输入,std_logic指的是标准逻辑数据类型。
qout:out std_logic--类似于上边
);
end fenx;--结束实体
architecture behave of fenx is-- 结构体 behave 为结构体名,fenx 为上边的实体名。
constant counter_len:integer:=1999999;--结构体说明部分,这里定义了一个常数,常数名为counter_len,将1999999赋给了这个常数。
begin
process(clk)--开始进程
variable cnt:integer range 0 to counter_len;--定义了一个变量,范围为0-1999999
begin
if clk'event and clk='1' then --在当前一个相当小的时间间隔内,事件发生了,并且clk为逻辑值1,然后执行下边的语句
if cnt=counter_len then --再如果,cnt这个变量的值等于定的那个常数counter_len, 则,把0赋给cnt
cnt:=0;
else
cnt:=cnt+1; --否刚,让cnt加1;
end if; --结束if语句
case cnt is --case 语句
when 0 to counter_len/2=>qout<='0';--若case 的值为0到counter_len 的一半,刚执行,把0赋给qout;
when others =>qout<='1';--其它,刚把1赋给qout;
end case; --结束case语句;
end if; --与第一个if对应,结束if 语句;
end process; --结束process 进程;

end behave; --结束behave 结构体。


晚上做的,不会我们再交流。

指定singned和unsigned数据类型和相应的算术与比较操作。它可以包含有几个数据转换函数,允许数据从一种类型转换到另一种类型。
建议库资源同时声明三个
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
这样可以省去很多的时间。
你可以去图书馆或者去询问大学数电教授,毕竟百度回答这种专业的问题,基本上都是驴唇不对马嘴的太多,课件也很少。想学VHDL最好还是去买一本专业的书。然后才能学CPLD和FPGA。想学专业的知识,英语得学好,网上的很多都是纯英文的。希望能对你有所帮助。
最后祝你学业有成!!!

ieee是库,std_logic_arith是程序包,all是项目名
std_logic_arith程序包,它预先编译在ieee库中,实在std_logic_1164程序包的基础上扩展了三个数据类型unsigned、signed和small_int,并且定义了相关的算术运算符和数据类型转换函数。

使用IEEE.STD逻辑算法,应该是计算机编程相关的东西。
STD总线是国际上流行的一种用于工业控制的标准微机总线,与1987年被批准为IEEE961标准。STD总线采用公共母版结构,即其总线布置在一块木板上,板上安装若干个插座,插座对应引脚都是连接到同一根总线信号线上。系统采用模块式结构,各种功能模块都按标准的插件尺寸制造。个功能模块可插入任意插座,只要模块的信号、引脚都符合STD规范,就可以在STD总线上运行。因此可以根据需要组成不同规模的微机系统 。STD总线采用56线双列插座,插件尺寸为165.1mm×114.3mm,是8/16位微处理器总线标准。


硚口区18413511638: VHDL 语言 我想要一个信号的下降沿 几种方法 -
闫婕少林: 看你想怎么用 如果要时序的结果,将输入信号和打拍后的信号送给2个寄存器,在每个周期判断两个寄存器的值是0 1 或者 1 0 就得到上升沿和下降沿了

硚口区18413511638: 用VHDL语言编写一个BCD码输出的219进制计数器 -
闫婕少林: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY COUNT219_BCD IS PORT(CLK,CLR :IN STD_LOGIC; CON :OUT STD_LOGIC; Y :OUT STD_LOGIC_VECTOR(11 DOWNTO 0)); END ...

硚口区18413511638: MAXPLUS2中,USE IEEE.STD - LOGIC - ARITH.ALL和USE IEEE.STD - LOGIC - UNSIGNED.ALL各有什么作用?
闫婕少林: USE IEEE.STD_LOGIC_UNSIGNED.ALL包含一个函数,使“+”两边可以是不同类型相加,所得结果为标准逻辑矢量例如这个十进制可逆计数器中的:qi<=qi+1,qi和1是不...

硚口区18413511638: EDA中IEEE.STD - LOGIC - ARITH.ALL是什么呢? -
闫婕少林:[答案] 你肯定玩了写关键字library和use了.LIBRARY IEEE表示打开IEEE库,USE IEEE.STD_LOGIC_ARIRH.ALL表示允许使用IEEE 库中STD_LOGIC_ARITH程序包中所有的内容

硚口区18413511638: VHDL library ieee;use ieee.std - logic - 1164.all;entity we isport(A,B,C,D:in bit;g,f,e,d,c,b,a:out bit);end we;architecture qwe1 of we issignal comb:bit - vector(3 ... -
闫婕少林:[答案] VHDL不区分大小写,输入端口中的A、B、C、D与输出端口中的a、b、c、d重名了,将输入端口的A、B、C、D改为A_in、B_in、C_in、D_in就可以.

硚口区18413511638: 一个vhdl的语句,一直报错显示width mismatch in relational operator,LIBRARY IEEE; USE IEEE.STD - LOGIC - 1164.ALL;USE IEEE.STD - LOGIC - unsigned.... -
闫婕少林:[答案] 我将上述描述在Quartus II 8.0下编译后没有出现报错,只有几个警告.

硚口区18413511638: USE IEEE.STD - LOGIC - ARITH.ALL是什么意思 用来干嘛的 -
闫婕少林: 指定singned和unsigned数据类型和相应的算术与比较操作.它可以包含有几个数据转换函数,允许数据从一种类型转换到另一种类型. 建议库资源同时声明三个 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_...

硚口区18413511638: 用逻辑(数据流)描述一个一位二进制全加器
闫婕少林: 一位二进制全加器: 输入端口:A、B是两个二进制数,CI是输入的进位; 输出端口:S为和,CO为输出的进位. 源程序如下: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity ADDER is port (A,B,CI:in std_logic; ...

硚口区18413511638: 写出D触发器的三种VHDL程序 -
闫婕少林: 你说的置位就是有一个set输入(q=1),清零应该可以用复位键reset吧(q=0).library ieee; use ieee.std_logic_1164.all; entity sync_rsdff isport(d,clk : in std_logic; set : in std_logic; reset: in std_logic; q,qb : out std_logic); end sync_rsdff; ...

硚口区18413511638: quartusII 运行报错(1)Error (10500):VHDL syntax error at vga.vhd(2) near text "use"; expecting "程序如下LIBRARY IEEEuse IEEE.std - logic - 1164.all;use ... -
闫婕少林:[答案] LIBRARY IEEE后面要加“;”,STD_LOGIC_UNSIGINED要小写,就OK了.希望对你有所帮助.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网