0

我是 VHDL 的初学者,我需要登录终端。例如,我有固定密码 7010。我只需要实现自动功能。我想定义一个信号,它将保持按键的计数,并且每次都会增加。

但我不知道如何初始化信号并对其进行增量,因为当我在一个进程中初始化信号时,我无法在其他进程中增加它的值。如果我不初始化那个信号,那么我的代码不起作用,我不知道为什么。例如,如果我没有向“0000”发出信号,则不会运行 doSomething。但我需要增加它在 doSomething 中的价值......对不起我的英语不好。

if(mySignal = "0000")
    doSomething
4

1 回答 1

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;
于 2012-05-03T22:29:00.107 回答