我在VHDL里面编写了如下的程序,后来发现process括号里面的d输入在原理图里面根本找不到,下载后d也不能用

教材上说了在d改变时会执行process,这是怎么回事啊?我用的xilinxiseentitytestprocessisPort(en:inSTD_LOGIC;clk:i... 教材上说了在d改变时会执行process,这是怎么回事啊?我用的xilinx ise
entity testprocess is
Port ( en : in STD_LOGIC;
clk : in STD_LOGIC;
d : in STD_LOGIC;
q : out STD_LOGIC_VECTOR(7 downto 0));
end testprocess;

architecture Behavioral of testprocess is
signal data:std_logic_vector(7 downto 0):=(others => '0');
begin
q <= data;
process(d)
begin
if(en = '1') then
data <= data + 1;
end if;
end process;
end Behavioral;
展开
 我来答
dxueqian
2011-08-03 · 超过17用户采纳过TA的回答
知道答主
回答量:52
采纳率:0%
帮助的人:55万
展开全部

--看你的输入和你的程序,感觉你是想在d有变化的时候,如果en有效则data自加1.

--如下:(注意我在process处的注释,应该是关键所在)

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

entity testprocess is

    Port ( en : in  STD_LOGIC;

           clk : in  STD_LOGIC;

           d : in  STD_LOGIC;

           q : out  STD_LOGIC_VECTOR(7 downto 0));

end testprocess;

architecture Behavioral of testprocess is

signal data:std_logic_vector(7 downto 0):=(others => '0');

begin

process(en,d)--process里要有触发参数的相关语句,这样才有的执行。

             --换句话说只有与触发有关的语句才会执行,继而引起其他参数(比如有一个参数a)的变化,

             --然后如果有与a相关的语句,那么再继续执行,反之到此为止。

begin

-- if d'event and d = '1' then

--  if en = '1' then

--  data <= data + 1;

--  end if;

-- end if;

if d'event and d = '0' then

 if en = '1' then

 data <= data + 1;

 end if;

end if;

end process;

q <= data;--信号赋值特点是在process执行完毕后赋值,所以此代码一般写在最后

end Behavioral;

追问
非常感谢你的回答,还有一个问题,就是我想让d从0变到1和从1变到0时都触发该怎么写?要写两个process吗?谢谢。
十二小妖爱追剧
2011-08-03
知道答主
回答量:23
采纳率:100%
帮助的人:12.7万
展开全部
在process中要有语句 使得d改变 才能执行process

process(d)
begin
if(d = '1') then
data <= data + 1;
end if;
end process;
这样就可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
海的情怀啊
2011-08-03
知道答主
回答量:5
采纳率:0%
帮助的人:5500
展开全部
你应该在process语句里面写上d的改变引起相应操作的语句

process(d)
begin
if d'event and d='1' then
if(en = '1') then
data <= data + 1;
end if;
end if;
end process;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式