vhdl语言怎么仿真_vhdl语言的基本结构

编程语言及工具

99人已加入

描述

  vhdl语言怎么仿真

  VHDL语言testbench仿真的例子如下:

  1.源代码

  --六进制计数器的代码

  Library ieee;

  use ieee.std_logic_1164.all;

  use ieee.std_logic_arith.all;

  use ieee.std_logic_unsigned.all;

  entity cnt6 is

  port

  (clr,en,clk :in std_logic;

  q :out std_logic_vector(2 downto 0)

  );

  end entity;

  architecture rtl of cnt6 is

  signal tmp :std_logic_vector(2 downto 0);

  begin

  process(clk)

  -- variable q6:integer;

  begin

  if(clk‘event and clk=’1‘) then

  if(clr=’0‘)then

  tmp《=“000”;

  elsif(en=’1‘) then

  if(tmp=“101”)then

  tmp《=“000”;

  else

  tmp《=unsigned(tmp)+’1‘;

  end if;

  end if;

  end if;

  q《=tmp;

  -- qa《=q(0);

  -- qb《=q(1);

  -- qc《=q(2);

  end process;

  end rtl;

  2,testbench代码

  Quartus II 可以自动生成testbench代码固定格式。

  如果自己不想写这些testbench的这些固定格式,可以在quartus里自动生成testbench文件的模板,然后往里面写信号就行了

  步骤:processing-》start-》starttest bench template write

  这里需要注意的是要在仿真选项里选择一个仿真工具,然后才会生成testbench

  -- 六进制计数器testbench的代码

  library ieee;

  use ieee.std_logic_1164.all;

  entity cnt6_tb is

  end cnt6_tb;

  architecture rtl of cnt6_tb is

  component cnt6

  port(

  clr,en,clk :in std_logic;

  q :out std_logic_vector(2 downto 0)

  );

  end component;

  signal clr :std_logic:=’0‘;

  signal en :std_logic:=’0‘;

  signal clk :std_logic:=’0‘;

  signal q :std_logic_vector(2 downto 0);

  constant clk_period :time :=20 ns;

  begin

  instant:cnt6 port map

  (

  clk=》clk,en=》en,clr=》clr,q=》q

  );

  clk_gen:process

  begin

  wait for clk_period/2;

  clk《=’1‘;

  wait for clk_period/2;

  clk《=’0‘;

  end process;

  clr_gen:process

  begin

  clr《=’0‘;

  wait for 30 ns;

  clr《=’1‘;

  wait;

  end process;

  en_gen:process

  begin

  en《=’0‘;

  wait for 50ns;

  en《=’1‘;

  wait;

  end process;

  end rtl;

  vhdl语言的基本结构

  在VHDL程序中,实体(ENTITY)和结构体(ARCHITECTURE)这两个基本结构是必须的,他们可以构成最简单的VHDL程序。通常,最简单的VHDL程序结构中还包含另一个最重要的部分,即库(LIBRARY)和程序包(PACKAGE)。

  1.实体

  1.1功能:

  对这个设计实体与外部电路进行接口描述

  1.2常用语句结构

  entity 实体名 is

  [generic (类属表); ]

  [port ( 端口表 );]

  end entity 实体名;

  1.3实体名

  一个设计实体无论多大和多复杂,在实体中定义的实体名即为这个设计实体的名称。在例化(已有元件的调用和连接)中,即可以用此名对相应的设计实体进行调用。

  1.4generic类属说明语句

  类属(generic)参量是一种端口界面常数,常以一种说明的形式放在实体或块结构前的说明部分,书写格式如下:

  1 generic ( [ 常数名 : 数据类型 [ : 设定值] ] ) 2 { ; 常数名 : 数据类型 [ : 设定值] };

  1.4端口说明

  实体端口说明的一般书写格式如下:

  1 port ( 端口名 : 端口模式 数据类型 ; 2 { 端口名 : 端口模式 数据类型 } );

  2.结构体

  2.1功能

  结构体是实体所定义的设计实体中的一个组成部分。结构体描述设计实体的内部结构和/或外部设计实体端口间的逻辑关系。

  2.2组成

  对数据类型、常数、信号、子程序和元件等元素的说明部分。

  描述实体逻辑行为的,以各种不同的描述风格表达的功能描述语句,它们包括各种形式的顺序描述语句和并行描述语句。

  以元件例化语句为特征的外部原件(设计实体)端口间的连接方式。

  2.3结构体的一般语言格式

  1 architecture 结构体名 of 实体名 is

  2 [说明语句]

  3 begin

  4 [功能描述语句]

  5 end architecture 结构体名;

  小编推荐阅读:

  vhdl语言的操作符_vhdl语言有什么用

  什么是vhdl语言_简述vhdl语言的特点

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分