在vhdl的ieee标准库中,预定义的标准逻辑位std-logic的数据类型中的数据是用的什么

在vhdl的ieee标准库中,预定义的标准逻辑位std-logic的数据类型中的数据是用的什么,第1张

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 程序解释,识别器,分频器等,帮我程序后注释下,高手帮帮忙~急~!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9488876.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存