第5行:这一行决定了“实体”语句的结尾。

因此,代码的实体部分指定了1)要描述的电路的名称,2)电路的端口及其特性,即输入/输出和这些端口要传输的数据类型。代码的实体部分实际上描述了模块与其周围环境的接口。由讨论的“实体”语句指定的上述电路的特性如图1所示绿色。

除了电路与环境的接口外,我们还需要描述电路的功能。在图1中,电路的功能是to和两个输入,并将结果放在输出端口上。为了描述电路的操作,VHDL增加了一个“体系结构”部分,并将其与实体语句定义的电路1相关联。描述该电路结构的vhdl代码如下

6 architecture Behavioral of circuit_1 is 8 begin 9 out1

第6行:这一行为下一行将要描述的体系结构命名为“行为”。这个名称介于关键字“Architecture”和“of”之间。它还将该体系结构与“电路1”相关联。换句话说,这种架构将描述“电路1”的操作。

第8行:这指定了体系结构描述的开始。

第9行第9行使用VHDL的语法来描述电路的操作。两个输入a和b的AND在括号内找到,并使用赋值运算符“《=”将结果分配给输出端口。

第10行这指定了体系结构描述的结束。如前所述,这些代码行描述了电路的内部操作,这里是一个简单的门(如图1中蓝色所示)。

把我们到目前为止讨论的内容放在一起,我们几乎完成了用VHDL描述“电路1”的工作。我们获得以下代码:

1 entity circuit_1 is 2 Port ( a : in STD_LOGIC; 3 b : in STD_LOGIC; 4

out1 : out STD_LOGIC); 5 end circuit_1; -

6 architecture Behavioral of circuit_1 is 8 begin 9 out1

但是,我们仍然需要增加几行代码。这些行将添加一个包含一些重要定义的库,包括数据类型和运算符的定义。库可以由几个包组成(参见下面的图2)。我们将不得不使一个给定库的所需包对设计可见。

由于上面的示例使用数据类型“std_logal”,所以我们需要将“ieee”库中的包“std_logic1164”添加到代码中。注意,std_logicdata类型的逻辑运算符也在“std_logic1164”包中定义,否则我们必须使相应的包对代码可见。最后的代码是

1 library ieee; 2 use ieee.std_logic_1164.all 3 entity circuit_1 is 4 Port ( a : in STD_LOGIC; 5

b : in STD_LOGIC; 6 out1 : out STD_LOGIC); 7 end circuit_1; 8 architecture Behavioral of circuit_1 is 9 begin 10 out1

在这里,我们创建了两条新的行来超越我们所创造的。第一行添加库“IEEE”,第二行指定此库中的包“std_logic1164”是必需的。因为“std_Logic”是一种常用的数据类型,所以我们几乎总是需要将“IEEE”库和“std_logic1164”包添加到VHDL代码中。

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查