当灵敏度列表没有变化时,VHDL过程被激活

时间:2017-04-27 02:06:21

标签: vhdl

当没有变化时,过程2会一直被激活。我有一块电路板来测试我的代码,当我翻转时钟时状态会改变(我将时钟设置为按钮)。在我的代码中,只有翻转秦才会改变状态。所以它并没有做我希望它做的事情,我花了很多时间试图找出导致它的原因,但我不能。请帮忙。

这是测试平台图TESTBENCH GRAPH 如您所见,在图形中,PS(present_state)的输出是正确的,但在电路板中,它不能正确输出。我发现有一件事非常重要,我试图在船上输出next_state,当我将Qin翻到' 1'时,状态显示" 001"然后我翻转clk对于' 1',状态变为" 010",这不应该发生。我希望这是一个重要的信息。

    const string imgFolderPath = @"C:\photo\";
    var imgName = textBoxWorkNo.Text;
    var fullImgPath = imgFolderPath + imgName + ".jpg";
    if (File.Exists(fullImgPath))
    {
        pictureBox1.Image = Image.FromFile(fullImgPath);
    }
    else { MessageBox.Show("File not exist"); }

2 个答案:

答案 0 :(得分:0)

过程不仅会在信号发生变化时启动,而且每次分配信号时都会启动,即使它具有与以前相同的值。这可能是原因。在并行过程中,您不能依赖于时间启动,而是在某些条件的情况下,结果是输入。

答案 1 :(得分:0)

Qin是否连接到外部交换机?如果是,您应该在输入上实现时钟域同步(以及可能的去抖动)。

如果您不知道如何,请在评论中告诉我。

缺少时钟同步信号会导致毛刺,从而导致状态机中的挂起。缺乏去抖动将导致多个开关脉冲("bouncing"