翻译一下这几个VHDL程序

来源:百度知道 编辑:UC知道 时间:2024/06/17 07:49:23
请给程序做详细的注释 解释下每句话的意义和用法
不要无聊的引用网站或者没用的话
我只要有真才实学的人来详细解释 我要能自己弄 我就不提问了 同样无知的人请不要回答
LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_unsigned.all;
ENTITY BUFF IS
PORT
(
LD: IN STD_LOGIC;
AA: IN STD_LOGIC_VECTOR(3 DOWNTO 0);
BB: OUT STD_LOGIC_VECTOR(3 DOWNTO 0)
);
END BUFF;
ARCHITECTURE a OF BUFF IS
SIGNAL BUFF1: STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
PROCESS(LD)
BEGIN
IF LD='1' THEN BUFF1<=AA;
ELSE NULL;
END IF;
END PROCESS;
BB<=BUFF1;
END A;

LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_unsigned.all;
ENTITY cnt10 IS
PORT
(
clk,rst,en: IN STD_LOGIC;
CQ : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
COUT : OUT STD_LOGIC
);
END CNT10;
ARCHITECTURE a OF CNT10 IS
BEGIN
PROCESS (clk,RST,EN)
VARIABLE CQI: STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
IF RS

和前面相同的我就不解释了

LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_unsigned.all;--不解释
ENTITY BUFF IS --buff实体定义
PORT
(
LD: IN STD_LOGIC;
AA: IN STD_LOGIC_VECTOR(3 DOWNTO 0);
BB: OUT STD_LOGIC_VECTOR(3 DOWNTO 0)
);--ld AA为输入型号 bb为输出 其中AA BB 是4位信号
END BUFF;
ARCHITECTURE a OF BUFF IS 定义buff实体下的结构体a
SIGNAL BUFF1: STD_LOGIC_VECTOR(3 DOWNTO 0); 定义信号量buff1 共4位
BEGIN 开始
PROCESS(LD) 引入进程(LD为敏感信号) 一般敏感信号是你的输入端口
BEGIN 开始
IF LD='1' THEN BUFF1<=AA; 如果ld为高电平 则 AA的4位数据送入buff信号量 记住 只有 定义的信号量 采用“<=”这个符号 定义变量 符号为“:=”
ELSE NULL;--否则 不做任何事情
END IF;结束if
END PROCESS;结束进程
BB<=BUFF1; 把buff1的值送给外部端口BB
END A;结束A

另外说一句 信号量可以看成是内部电源线路 有硬件特性 是有先后顺序的,而变量 是可以随时改变的 如果不明白 可以查查C语言中的volatile关键字(VHDL里面没有这个关键字,但意思是一样的)

LIBRARY ieee;
USE ieee.std_logic_1164.all;
USE ieee.std_logic_unsigned.all;--不解释
ENTITY cnt10 IS --定义cnt10这个实体