本帖最后由 jinglixixi 于 2021-3-24 09:30 编辑
对于入门者来说,最初的起步是从构建开发环境和测试例程开始的,但要真想学好编程还是要从创建项目开始来掌握整体的编程过程。
在创建新项目后,我们可以用简单的语句来实现一些功能设计。
值得指出的是,开发板的LED灯比较神奇,如果你不人为对其关闭的话,它会完全点亮的。为了不影响显示效果,即使对不适用的LED在程序设计时,也应对其进行定义,并将其关闭。
那我们用简单的语句都能干些啥呢?
我们知道FPGA的前身是由可编程器件发展而来的,自然我们用FPGA来模拟数组电路的功能也不在话下。
这里我们先对一下几个简单功能加以实现:
1.逻辑门
1)与门
与门的真值表为:
输入端A
|
输入端B
|
输出端Y
|
0
|
0
|
0
|
0
|
1
|
0
|
1
|
0
|
0
|
1
|
1
|
1
|
由开发板上LED和SW的原理图可知,开关SW可以通过高低电平信号,LED也能够以亮灭来指示高低电平的输出。为了能符合亮表示“1”,灭表示“0”的惯例,我们需要强制地对输出信号进行取反处理。
图1 LED与SW原理图
若SW1表示输入A,SW2表示输入B, D1表示输出Y,则实现与门的程序为:
module test1(
output d1,
input sw1,
input sw2,
);
assign d1 = (!(sw1 && sw2));
endmodule
实现功能演示效果的逻辑电路为:
经实际验证,该设计是正确的。
2)或门
或门的真值表为:
输入端A
|
输入端B
|
输出端Y
|
0
|
0
|
0
|
0
|
1
|
1
|
1
|
0
|
1
|
1
|
1
|
1
|
若SW3表示输入A,SW4表示输入B,D3表示输出Y,则实现与门的程序为:
module test2(
output d3,
input sw3,
input sw4,
);
assign d3 = (!(sw3 || sw4));
endmodule
实现功能演示效果的逻辑电路为:
经实际验证,该设计是正确的。
示例工程: