有没有大神有vhdl电子中设计的语言,最好能加上备注的,有的话和我说一下,谢谢,还有1000财富值 100
有没有大神有vhdl电子中设计的语言,最好能加上备注的,有的话和我说一下,谢谢,还有1000财富值完了都送给你也可以...
有没有大神有vhdl电子中设计的语言,最好能加上备注的,有的话和我说一下,谢谢,还有1000财富值完了都送给你也可以
展开
1个回答
展开全部
一、VHDL语言设计的基本单元及其构成
l 一个完整的VHDL语言程序通常包含实体(Entity)、构造体(Architecture)、配置(Configuration)、包集合(Package)和库(Library):
l 功能:
实体 -—- 用于描述所设计的系统的外部接口信号;
构造体—— 用于描述系统内部的结构和行为;
包集合—— 存放各设计模块都能共享的数据类型、常数和子程序库;
配置 —— 用于从库中选取所需单元来组成系统设计的不同版本;
库 —— 存放已经编译的实体、构造体、包集合和配置。
l 基本组成:实体说明和构造体两部分
实体说明(接口)
构造体(实现)
1. 实体说明:
规定此实体输入与输出的数目与类型。
l 结构:
entity 实体名 is
[generic(类属参数说明)];
[port(端口说明)];
end 实体名;
l 类属参数说明:
generic (
常数名:数据类型 :=数值);
在端口说明前,用于指定参数。
l 端口说明:
在entity语句的实体说明部分,常用port语句描述实体对外界连接的端口(数目、方向和数据类型)。
port (
端口名:端口方向 端口数据类型;
.
.
.
端口名:端口方向 端口数据类型;
);
端口方向:
in (输入),只能读,用于:时钟输入、控制输入(装入、复位、使能)、单向数据输入;
out (输出),只能被赋值,用于不能反馈的输出;
inout(输入输出) ,既可读又可被赋值,被读的值是端口输入值而不是被赋值,作为双向端口。
buffer(缓冲),类似于输出,但可以读,读的值是被赋值,用做内部反馈用,不能作为双向端口使用。
l 例1):
entity NAND2 is
port(A,B: in BIT;
Z: out BIT);
end NAND2;
l 例2):
--Define an entity (design) called COMP
--that has 2 N-bit input and one output.
entity COMP is
generic(N : INTEGER :=8 ) ; -- default is 8 bits
port ( x, y : in BIT_VECTOR ( 0 to N-1);
equal : out BOOLEAN );
end COMP;
2. 构造体
构造体定义实体功能的一种实现。
l 构造体的结构:
architecture 构造体名 of 实体名 is
{块说明项}
begin
{并发语句}
end 构造体名;
l 块说明项(或定义语句),位于architecture 和begin之间,对构造体内部的使用信号、常数、数据类型和函数进行说明,包括:
使用语句
子程序说明
子程序体
类型说明
子类型说明
常数说明
信号说明
元件说明
l 并行语句处于begin 与end之间,描述构造体的行为与连接关系。
l 构造体的描述方法:
行为描述(按算法的路径来描述);
数据流描述或RTL描述(采用寄存器传输描述);
结构化描述(采用例化元件)
例化(instantiation ):在高层次的设计中调用低层次的实体作为元件的过程。
l 构造体的组织
l 例
entity COUNTER3 is
port( clk: in bit;
reset : in bit;
count: out integer range 0 to 7);
end COUNTER3;
architecture MY_ARCH of COUNTER3 is
signal count_tmp : integer range 0 to 7;
begin
process
begin
wait until (clk'event and clk='1');
if reset='1' or count_tmp =7 then
count_tmp<=0;
else
count_tmp<=count_tmp + 1;
end if;
end process;
count<=count_tmp;
l 一个完整的VHDL语言程序通常包含实体(Entity)、构造体(Architecture)、配置(Configuration)、包集合(Package)和库(Library):
l 功能:
实体 -—- 用于描述所设计的系统的外部接口信号;
构造体—— 用于描述系统内部的结构和行为;
包集合—— 存放各设计模块都能共享的数据类型、常数和子程序库;
配置 —— 用于从库中选取所需单元来组成系统设计的不同版本;
库 —— 存放已经编译的实体、构造体、包集合和配置。
l 基本组成:实体说明和构造体两部分
实体说明(接口)
构造体(实现)
1. 实体说明:
规定此实体输入与输出的数目与类型。
l 结构:
entity 实体名 is
[generic(类属参数说明)];
[port(端口说明)];
end 实体名;
l 类属参数说明:
generic (
常数名:数据类型 :=数值);
在端口说明前,用于指定参数。
l 端口说明:
在entity语句的实体说明部分,常用port语句描述实体对外界连接的端口(数目、方向和数据类型)。
port (
端口名:端口方向 端口数据类型;
.
.
.
端口名:端口方向 端口数据类型;
);
端口方向:
in (输入),只能读,用于:时钟输入、控制输入(装入、复位、使能)、单向数据输入;
out (输出),只能被赋值,用于不能反馈的输出;
inout(输入输出) ,既可读又可被赋值,被读的值是端口输入值而不是被赋值,作为双向端口。
buffer(缓冲),类似于输出,但可以读,读的值是被赋值,用做内部反馈用,不能作为双向端口使用。
l 例1):
entity NAND2 is
port(A,B: in BIT;
Z: out BIT);
end NAND2;
l 例2):
--Define an entity (design) called COMP
--that has 2 N-bit input and one output.
entity COMP is
generic(N : INTEGER :=8 ) ; -- default is 8 bits
port ( x, y : in BIT_VECTOR ( 0 to N-1);
equal : out BOOLEAN );
end COMP;
2. 构造体
构造体定义实体功能的一种实现。
l 构造体的结构:
architecture 构造体名 of 实体名 is
{块说明项}
begin
{并发语句}
end 构造体名;
l 块说明项(或定义语句),位于architecture 和begin之间,对构造体内部的使用信号、常数、数据类型和函数进行说明,包括:
使用语句
子程序说明
子程序体
类型说明
子类型说明
常数说明
信号说明
元件说明
l 并行语句处于begin 与end之间,描述构造体的行为与连接关系。
l 构造体的描述方法:
行为描述(按算法的路径来描述);
数据流描述或RTL描述(采用寄存器传输描述);
结构化描述(采用例化元件)
例化(instantiation ):在高层次的设计中调用低层次的实体作为元件的过程。
l 构造体的组织
l 例
entity COUNTER3 is
port( clk: in bit;
reset : in bit;
count: out integer range 0 to 7);
end COUNTER3;
architecture MY_ARCH of COUNTER3 is
signal count_tmp : integer range 0 to 7;
begin
process
begin
wait until (clk'event and clk='1');
if reset='1' or count_tmp =7 then
count_tmp<=0;
else
count_tmp<=count_tmp + 1;
end if;
end process;
count<=count_tmp;
更多追问追答
追问
别发了
追答
monics0;
l 编译通过后即可使用。
注:maxplus2在编译此package时,报告: "…does not contain an architecture body—stopping compilation",但此package 将被正确分析,并可成功地编译使用此package的其他设计。
l 用于其他使用此包集合的程序:
--由控制信号控制两个多路选择器
library ieee;
use ieee.std_logic_1164.all;
use work.mnemonics0.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity src_op is port(
d,ad,bd,q: in unsigned(3 downto 0);
src_ctl: in std_logic_vector(2 downto 0);
r,s: buffer unsigned(3 downto 0));
end src_op;
architecture src_op of src_op is
begin
with src_ctl select
r <= ad when aq | ab,
"0000" when zq | zb | za,
d when others;
with src_ctl select
s <= q when aq | zq | dq,
bd when ab | zb ,
ad when za |da,
"0000" when others;
end src_op;
3.配置
描述层与层之间的连接关系以及实体与构造体之间的连接关系。在仿真时利用配置选择不同的构造体。
格式:
CONFIGURATION 配置名 OF 实体名 IS
FOR 构造体名
END FOR;
END 配置名;
l 例
configuration MY_CONFIG of COUNTER3 is
for MY_ARCH
end for;
end MY_CONFIG;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询