实验二集成逻辑门及其基本应用 2.1 实现基本逻辑门功能
一、实验设计目标
在 FPGA 中实现基本逻辑门并验证其功能。
二、实验设计思路
本实验涉及到的基本逻辑门有 “与门”、“与非门”、“或门”、“或非门”、“异或门” 和 “同或门”,功能简单,实验时使用 2 个拨动开关模拟逻辑门的输入信号,通过 LED 灯的点亮或熄灭来验证逻辑门的功能。
三、功能模块图与输入输出引脚说明
逻辑门工程包含顶层模块 gate 与底层模块 Gate_module,图 2.1 是整个工程的模块功能图。下面介绍一下各主要引脚的功能:
(1)SW_In:拨动开关输入,共有两位总线。SW_In [1] 和 SW_In [0] 分别连接 “两输入逻辑门” 的输入信号。
(2)LED_Out:输出到 LED 灯,共有六位总线。LED_Out [5:0] 分别连接 “同或门”、“异或门”、“或非门”、“或门”、“与非门” 和 “与门” 的输出,通过 LED 灯的点亮或熄灭来表示逻辑门输出的 “高” 和 “低” 电平。
图 2.2 逻辑门模块功能图
四、程序设计
图 2.2 是截取自底层模块 Gate_module 的部分代码:
图 2.2 逻辑门实验核心代码
6-7:输入输出信号声明。
11-16:这是本次实验的重要程序,11-16 行依次实现 “与门”、“与非门”、“或门”、“或非门”、“异或门” 和 “同或门” 功能。
五、FPGA 管脚配置
下面是 Anlogic_FPGA 开发板的 IO Constraint,SW_In [1:0] 输入信号分别与 Anlogic_FPGA 开发板上的 SW1 和 SW0 相连;LED_Out [5:0] 输出信号分别与开发板上的 LED5~LED0 相连。
set_pin_assignment { SW_In[0] } { LOCATION = A10; IOSTANDARD = LVCMOS33; }
set_pin_assignment { SW_In[1] } { LOCATION = A9; IOSTANDARD = LVCMOS33; }
set_pin_assignment { LED_Out[0] } { LOCATION = B14; IOSTANDARD = LVCMOS33; }
set_pin_assignment { LED_Out[1] } { LOCATION = B15; IOSTANDARD = LVCMOS33; }
set_pin_assignment { LED_Out[2] } { LOCATION = B16; IOSTANDARD = LVCMOS33; }
set_pin_assignment { LED_Out[3] } { LOCATION = C15; IOSTANDARD = LVCMOS33; }
set_pin_assignment { LED_Out[4] } { LOCATION = C16; IOSTANDARD = LVCMOS33; }
set_pin_assignment { LED_Out[5] } { LOCATION = E13; IOSTANDARD = LVCMOS33; }
set_pin_assignment { LED_Out[6] } { LOCATION = E16; IOSTANDARD = LVCMOS33; }
set_pin_assignment { LED_Out[7] } { LOCATION = F16; IOSTANDARD = LVCMOS33; }
逻辑门实验 IO Constraint
六、实验结果
当逻辑门两输入分别为 “1” 和 “0” 时,“与门”、“与非门”、“或门”、“或非门”、“异或门” 和 “同或门” 输出分别为 “0、1、1、0、1、0”,即 Gate_Out [0]- Gate_Out [5] 分别为 “0、1、1、0、1、0”,则 LED0~LED5 分别为 “灭、亮、亮、灭、亮、灭”。因篇幅有限,其他情况请自行验证。