
std-logic是一种枚举类型的决断子类型。这种枚举类型有9个值:'U','X','1','0','Z','W','H','L','-',所谓数据,就是指std_logic类型对象(信号、变量或者常量)的值,可以是上述9个值当中的某一个。
VHDL语言数据对象有哪几种?作用范围如何?对其赋初值作用有何不同?
答:VHDL语言数据对象有信号,变量,常量。
1、常量(CONSTANT)
一般用来代表数字电路中的电源、地、恒等逻辑值等常数。
常量的使用范围取决于它被定义的位置。即在程序包中定义可在整个程序包中使用,在实体中定义,有效范围为这个实体定义的所有结构体;定义在结构体中只能用于该结构体;定义在结构体中某一单元如一个进程则只能用在这个进程当中。
2、变量
常用在实现某些算法的赋值语句当中,只是个局部变量,只能在进程和子程序中使用。(是一种理想化的数据传输,不存在任何的延时行为)
3、信号
表示一条硬件连接线:如输入输出端口,描述硬件系统的基本数据对象。
回答如下,不知道能不能帮助你!
移存器的VHDL程序如下:
Library ieee;
use ieeestd_logic_1164all;
use ieeestd_logic_unsignedall; --以上是定义集合包,是VHDL里面的包
entity yicunqi is --这是定义实体,就是定义器件的输入输出管角,名称为yicunqi
port(di ,clk :in std_logic; --2个输入
q6,q5,q4,q3,q2,q1,q0:out_std_logic --7个逻辑输出
);
end yicunqi;
architecture a of yicunqi is --定义结构体,名称为a,属于yicunqi
signal tmp : std_logic_vector(6 downto 0); 定义一个信号变量组,一共7个
begin
process(clk) --clk是触发程序的条件
begin
if (clk'event and clk='1') then --如果CLK有变化且是上升沿触发
tmp(6)<=di; --首先赋值
for i in 1 to 6 loop
tmp(6-i)<=tmp(7-i); --循环赋值,将后一个值给前一个,这样就实现移位
end loop;
end if;
end process;
q6<=not tmp(6);--将值取反付给Q6
q5<=tmp(5);
q4<=not tmp(4);
q3<=not tmp(3);
q2<=tmp(2);
q1<=tmp(1);
q0<=tmp(0);
end a;
译码器:当七位移位寄存器输出的是“1111111”时,译码器输出就是“111”;有一位错码输出即七位输出中有一个是“0”的时候,译码器输出就是“110”,其它情况输出就为“000”。
译码器的VHDL源程序为:
library ieee;
use ieeestd_logic_1164all;
use ieeestd_logic_unsignedall;
entity yimaqi is
port(a,b,c,d,e,f,g:in std_logic;
selt :out std_logic_vector(2 downto 0)); --输出是一个3位的
end yimaqi;
architecture bh of yimaqi is
signal sel: std_logic_vector(6 downto 0);
begin
sel<=a&b&c&d&e&f&g; --将abcdefg按位组成一个7位数组形式
process(sel)
begin
case sel is --case语句应该懂吧,C语言有的饿
when"0111111"=>selt<="110"; --当sel满足when后面的条件时就把100赋值给selt,后面同
when"1011111"=>selt<="110";
when"1101111"=>selt<="110";
when"1110111"=>selt<="110";
when"1111011"=>selt<="110";
when"1111101"=>selt<="110";
when"1111110"=>selt<="110";
when"1111111"=>selt<="111";
when others=>selt<="000";
end case;
end process;
end bh;
判决器的功能相当于一个比较器。
当巴克码识别器的输出大于等于自动门限的输出时,就输出一个“1”脉冲,否则就输出“0”脉冲。
判决器的VHDL源程序为:
library ieee;
use ieeestd_logic_1164all;
use ieeestd_logic_unsignedall;
entity panjueqi is
port(a : in std_logic_vector(2 downto 0);
b :in std_logic_vector(2 downto 0);
c :buffer std_logic --定义的是数据buffer
);
end panjueqi;
architecture bh of panjue is
begin
c<='1' when a>=b else '0'; --当a>=b时c<='1',其他c<='0'
end bh ;
以上就是关于在vhdl的ieee标准库中,预定义的标准逻辑位std-logic的数据类型中的数据是用的什么全部的内容,包括:在vhdl的ieee标准库中,预定义的标准逻辑位std-logic的数据类型中的数据是用的什么、vhdl语言数据对象有哪几种作用范围如何对其赋初值作用有何不同、VHDL 程序解释,识别器,分频器等,帮我程序后注释下,高手帮帮忙~急~!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)