我是VHDL的初学者,我需要登录终端。例如我有固定密码7010.我只需要实现automat的功能。我想定义一个信号,它将保持按键次数,并且每次都会递增。
但我不知道如何初始化信号和启动它,因为当我在一个过程中初始化信号时,我不能在其他过程中增加其值。如果我不初始化那个信号,那么我的代码不起作用,我不知道为什么。例如,如果我没有向“0000”发出信号,则不会运行doSomething。但是我需要在doSomething中提升它的价值......为我糟糕的英语而烦恼。
if(mySignal = "0000")
doSomething
答案 0 :(得分:1)
你要做的事情听起来像课堂作业。
打破问题。
绘制您想要的方框图
在可合成的VHDL中,你说的是正确的,除非信号可以是高Z,否则不允许多个驱动程序。
但是没有什么可以阻止你获取信号的副本并在另一个过程中使用它。
对计数器或任何具有大小的信号使用无符号类型,使生活更容易
doSomething:process(clk,mySignal
begin
if rising_Edge(clk) then
if mySignal = "0000" then
count<=count+1;
end if;
end if;
end process;