0
在某些条件assingning与时钟的计数值输出我新的VHDL和混淆这种设计设计在VHDL
当Acknwledgement =“1”和CLK =“1”,那么
计数应该是count +1;
当Acknwledgement ='0'时,我的计数时钟总计值应该被分配给'output',并且在那之后复位count ='0'和output ='0'。
任何人都可以帮忙。 在此先感谢。
编辑:从评论 代码中粘贴:从您的评论
library IEEE;
use IEEE.STD_LOGIC_1164.all;
entity acknw is
port (acknw : in std_logic;
clk : in std_logic;
output : out integer range 0 to 15);
end acknw;
architecture Behavioral of acknw is
begin
process(clk, acknw) variable c : integer range 0 to 15;
begin
if(clk'event and clk = '1') then
if(acknw = '1') then
c := c+1;
output <= c;
else
c := 0;
output <= c;
end if;
end if;
end process;
end Behavioral;
我摸索出这样的 东西图书馆IEEE; 使用IEEE.STD_LOGIC_1164.ALL; entity acknw is Port(acknw:in STD_LOGIC; clk:in STD_LOGIC; output:out INTEGER RANGE 0 To 15); end acknw; 架构acknw的行为是 开始 进程(clk,acknw) 变量c:INTEGER RANGE 0到15; 开始 如果(clk'event并且clk = '1'),那么如果 (acknw = '1'),那么 C:= C + 1; 输出<= c; else c:= 0; 输出<= c; end if; end if; 结束过程; 结束行为; 而不是让我的过程在时钟条件下工作,它应该工作在acknw条件,然后检查我的时钟条件。任何人都可以指导我! – user1016528
当你说'它应该在acnkw条件下工作',你的意思是它应该只在acknw的边缘做些什么?作为一个单独的注释,acknw不需要出现在您的流程的敏感列表中,因为它是一个计时过程。如果将它用作异步事件,则只需要它,例如异步重置。 –
是的,它应该只在acknw边缘做一些事情。而且像异步reseti.e。,当我的acknw = 1和我的clk = 1时,它应该计数,当我的acknw ='0'我的计数值应该是例如输出的输出是126,32(时钟计数)。 – user1016528