最近我把一些HDL从Basys 3到附庸风雅的然后遇到了一个似乎无法解决的问题。经过一些测试,我发现在我转换的代码中使用的重置按钮是Active High。一旦我知道了这一点,剩下的转换就顺利进行了。
为了避免这种麻烦,有两种方法来找出一个按钮的极性。首先是看一下这个板的原理图。它可能有两种构型,活性低和活性高。对于有源低,电路看起来像:
在这张图中要看到的重要的事情是按钮的一侧直接连接到地面(GND)。对于有源高,电路有点不同:
控件上的四个用户按钮附庸风雅的.注意,这些是直接连接到3.3伏电源线(VCC3V3)。这两个图像都是直接从附庸风雅的示意图。
第二种方法是编写一个测试项目,将按钮作为输入,并使用通用引脚作为输出。在Verilog中,这看起来像这样:
模块Btn_test (input btn, output gpio);
分配gpio = btn;
endmodule;
输出输出后,可以在输出引脚上使用万用表,并按下按钮,以找到按钮的极性。
同样重要的是要注意的是,在我们的一些板的7段显示是主动低。测试这一点的一个好方法是使用刚刚测试过的按钮来触发其中一个片段。在Verilog中如下所示:
模块Btn_test (input btn, output an, output [6:0] cat);
分配一个= 1 'b1;
分配猫= 7 {btn};
endmodule;
这个小模块将按钮作为一个输入,并根据按钮的状态驱动所有7个阴极。其中一个数字应该是8。
现在您可以找出I/O的极性,您可以继续将项目从一个板转换到另一个板。你曾经经历过信号极性的问题在过去?在使用fpga时,您还遇到了什么其他问题?
