当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]VHDL设计中信号与变量的区别及应用技巧

在VHDL程序设计中,可以充分利用信号或变量的系统默认值,来灵活实现设计目标。本文从应用的角度举例说明了VHDL设计中信号与变量的区别,以及正确的使用方法,并介绍了为信号或变量赋予初始值的技巧。

  概述

  随着集成电路技术的发展,用传统的方法进行芯片或系统设计已不能满足要求,迫切需要提高设计效率,因此能大大降低设计难度的VHDL设计方法被越来越广泛地采用。用VHDL语言设计系统的主要方法是:设计者根据VHDL的语法规则,对系统目标的逻辑行为进行描述,然后通过综合工具进行电路结构的综合、编译、优化,通过仿真工具进行逻辑功能仿真和系统时延的仿真,最后把设计的程序下载到芯片中,成功地实现系统功能。

  在VHDL设计中,最常用的数据对象主要有三种:信号(signal)、变量(variable)和常数(constant)。信号是电子电路内部硬件连接的抽象。它除了没有数据流动方向说明以外,其他性质几乎和“端口”一样;信号是一个全局量,它可以用来进行进程之间的通信。变量只能在进程语句、函数语句和过程语句结构中使用,是一个局部量。

  在VHDL语言中,对信号赋值是按仿真时间进行的,到了规定的仿真时间才进行赋值,而变量的赋值是立即发生的。下面的例子是从赋初值的角度说明信号与变量的这种区别的。

  例如用VHDL语言实现初值为A的十六进制的16个数的循环显示。

  对于如此的设计要求,如果用变量实现,则VHDL程序如下。

  library ieee;

  use ieee.std_logic_1164.all;

  use ieee.std_logic_unsigned.all;

  entity sevenauto is

  port(clk:in std_logic;

  y:out std_logic_vector(6 downto 0));

  end sevenauto;

  architecture behave of sevenauto is

  begin

  process(clk)

  variable count:std_logic_vector(3 downto 0);

  variable init:std_logic;

  begin

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

  if (init = ‘‘0‘‘) then

  count:= "1001";

  init:=‘‘1‘

  end if;

  count:=count+1;

  case count is

  when "0000"=>y<="1111110";

  when "0001"=>y<="0110000";

  when X"2"=>y<="1101101";

  when X"3"=>y<="1111001";

  when X"4"=>y<="0110011";

  when X"5"=>y<="1011011";

  when X"6"=>y<="1011111";

  when X"7"=>y<="1110000";

  when X"8"=>y<="1111111";

  when X"9"=>y<="1111011";

  when X"A"=>y<="1110111";

  when X"B"=>y<="0011111";

  when X"C"=>y<="1001110";

  when "1101"=>y<="0111101";

  when "1110"=>y<="1001111";

  when "1111"=>y<="1000111";

  when thers=>y<="XXXXXXX";

  end case;

  end if;

  end process;

  end behave;[!--empirenews.page--]
 在程序中,定义了变量count,希望初始值为“1010”。通过实验发现,在定义变量或信号时直接赋予初始值不能生效(如variable count:std_logic_vector(3 downto 0) :=“1010”),它的初始值仍然是系统默认值(如count为“0000”)。正是利用这一点,通过init(初始值为‘‘0‘‘)来给count赋初值 A即“1010”,具体方法见程序中斜体部分。这样,在第一个脉冲来时执行斜体部分if语句,而第二个脉冲来时由于init不为‘‘0‘‘而是 ‘‘1‘‘,因此不执行该部分语句,从而实现为count赋初值的功能,这样程序从A开始进行数字的循环显示。

  如果把count类型改为signal,则结果将大不一样。

  signal count: std_logic_vector(3 downto 0);

  process(clk)

  variable init :std_logic;

  begin

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

  if (init = ‘‘0‘‘) then

  count<= "1001"; --(1)

  init := ‘‘1‘

  end if;

  count<=count+1; --(2)

  由于信号的赋值不是立即发生的,在语句(1)后面还存在对信号count的赋值操作(2),因此,语句(1)在此不起作用,count的最后值是语句 (2)的值。因此如果将count设为signal的话,程序实现的是从0开始的16个十六进制数的循环。在这里,对信号赋初值的语句是不可行的。

  仿真结果

  将设计好的VHDL程序在Altera公司提供的软件maxplusⅡ10.1环境下进行编译仿真,得到的仿真结果如图1、图2所示,其中图1是 count为变量的结果,图2是count为信号的结果,其中输出y[6...0]分别与七段数码管的abcdefg七段相连。

  从图1可以看出,在第一个时钟脉冲上升沿,结果是“1110111”,数码管显示即为A,然后依次为b,C,d, E,F,0,1...9,A...循环下去,此处用小写的b和d,主要是与数字8进行区别。

  从图中可以看出,在第一个时钟脉冲上升沿,结果是“1111110”,数码管显示即为0,然后依次示1...9,A, b,C,d,E,F,0,...循环下去。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

启智扬帆谱新章,携手共进续辉煌  北京2024年5月6日 /美通社/ -- 春风轻拂,万物复苏,4月25日,北京邮电大学-法国里昂商学院EMBA (中外合作办学) 项目2024级春季班开学典礼在北京邮电大学经...

关键字: 北京邮电大学 人工智能 数字化 NI

海口2024年4月16日 /美通社/ -- 4月14日,在中法建交60周年之际,科学护肤先锋品牌Galenic法国科兰黎受邀入驻第四届中国国际消费品博览会(以下简称"消博会")法国馆。Galenic法...

关键字: NI IC BSP ACTIVE

伦敦2024年4月16日 /美通社/ -- ATFX宣布任命Siju Daniel为首席商务官。Siju在金融服务行业拥有丰富的经验和专业知识,曾在全球各地的高管职位上工作了19年以上。Siju之前担任FXCM首席商务官...

关键字: NI AN SI BSP

VGA接口主要用于将计算机的数字图像信号转换成模拟信号,从而可以在显示器上显示。这种接口通常包含15个针脚,分成3排,每排5个孔,可以传输红、绿、蓝三种基本颜色的信号以及水平和垂直同步信号。

关键字: vga接口 信号 电压

上海2023年9月12日 /美通社/ -- 近日,由SGS通标标准技术服务有限公司主办、同济大学张存满教授联合发起的"SGS中国制氢行业高峰论坛"于成都圆满闭幕。本次会议得到了上级单位中国标准化研究院...

关键字: AN 进程 NI 测试

(全球TMT2023年9月8日讯)德国时间9月1日至5日,TECNO征战2023年德国柏林国际消费电子展(IFA)。除了两款首次亮相的TECNO MEGABOOK笔电新品,TECNO还在展会期间发布了两款“全球首创”概...

关键字: TE PC NI ST

北京2023年9月8日 /美通社/ -- 日前,"云融数智 创领未来"2023浪潮云海云图生态峰会产品技术伙伴专场在北京成功举办。来自开源基金会、云安全、PaaS、数据库服务、容灾备份等领域的头部领先...

关键字: 云安全 私有云 数据库 NI

TECNO携两款"全球首创"概念机震撼登场2023德国IFA科技展会 MEGA MINI Water-Cooling游戏主机及PhUltimate卷轴屏引领创新科技新标杆 柏林2023...

关键字: TE NI ST 游戏主机

商家可在WhatsApp建构商店,顾客更可透过对话下单(Chat-to-Order)功能选择取货门店,并使用WhatsApp传送付款链接 善用Meta不同的广告平台,能为商家带来更高的流量及转化率 3香港使用Wh...

关键字: APP SAP NI IC

上海2023年9月4日 /美通社/ -- 2023年8月8日,成都大运会正式落幕。来自113个国家和地区的6500名大学生运动员,在12个比赛日里同台竞技,展现青春与体育的力量。与此同时,在大运会的各个赛场、运动员村以及...

关键字: 信号 TV PS CE
关闭
关闭