找回密码
 注册
关于网站域名变更的通知
查看: 286|回复: 1
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-2-18 16:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
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 结构体名;

  H0 g  J2 K4 |0 o4 `  \. f

该用户从未签到

2#
发表于 2021-2-18 16:52 | 只看该作者
学习了                              
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-8-12 09:22 , Processed in 0.109375 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表