集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1271|回复: 0

菜鸟请教高手们VHDL语法问题

[复制链接]
linkobe 发表于 2011-4-25 16:32:53 | 显示全部楼层 |阅读模式
本帖最后由 linkobe 于 2011-4-25 16:37 编辑

library ieee;
use ieee.std_logic_1164.all;

entity home2 is
port(d1:in std_logic;
     clk:in std_logic;
     d0: out std_logic);
end home2;

architecture rtl_home2 of home2 is
signal tmp: std_logic_vector(4 downto 0);

component d_trigger
port(d,clk:in std_logic;
     q: out std_logic);
end component;

begin

G1:for i in 0 to 3 generate

q1:if(i=0) generate
Ux:d_trigger port map(d1,clk,tmp(i+1));
end generate q1;
q2:if(i=3) generate
Ux:d_trigger port map(tmp(i),clk,d0);
end generate q2;
q3:if((i/=0)and(i/=3)) generate
Ux:d_trigger port map(tmp(i),clk,tmp(i+1));
end generate q3;
end generate G1;
end rtl_home2;

运行的环境是quartusII8.1软件。程序中的d_trigger是D触发器的例化名。
第一个问题是:为何在程序开头,没有加入use work.d_trigger.all;这句话可以正常运行,但是加入了这句话就会报错。其中,d_trigger和当前的实体在同一个目录下,是不是因为这个就可以不加了。如果想加入那句话,应该怎么加才是正确的。
第二个问题:生成语句的标号是可加可不加的,参考了一些资料也是这么说的。但是在此只要把生成语句的标号删去,比如说把G1删去,就会报错。这是为何?

初学VHDL,不懂得问题描述是否让高手们明白,包涵包涵
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-6-23 02:40 , Processed in 0.153015 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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