实验二集成逻辑门及其基本应用 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分别为“灭、亮、亮、灭、亮、灭”。因篇幅有限,其他情况请自行验证。