电气技术实验报告
FPGA实验
一、实验目的
1. 熟悉Quartus Ⅱ软件基本使用方法;
2. 掌握电路的基本
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
方法;
3. 掌握电路的基本仿真方法;
4. 掌握电路的基本下载方法;
5. 学习状态机的设计技巧;
6. 掌握CASE 语句的使用;
7. 掌握时钟分频电路的HDL 设计;
8. 掌握CASE 语句的使用;
9. 掌握VHDL模块化程序设计方式;
10. 学习VHDL程序的设计技巧;
11. 掌握VHDL语言译码电路的设计;
12. 掌握选择信号赋值语句的设计方法;
二、实验器材
1. KH-310 下载板;
2. KH-310 LED 显示模块;
3. KH-310 时钟模块;
5.KH-310 七段数码管模块。
4. 计算机。
三、实验原理
乒乓球机:乒乓球游戏机是用8~16 个发光二极管代表乒乓球台,中间两个发光二极管兼作乒乓球网,用点亮的发光二极管按一定方向移动来表示球的运动。另外设置发球开关: Af、Bf;和接球开关Aj、Bj。利用若干七段数码管作为计分牌。
甲乙双方按乒乓球比赛
规则
编码规则下载淘宝规则下载天猫规则下载麻将竞赛规则pdf麻将竞赛规则pdf
来操作开关。当甲方按动发球开关Af 时,靠近甲方的第一个灯亮,然后顺序向乙方移动。当球过网后,乙方可以接球,接球后灯反方向运动,双方继续比赛,如果一方提前击球(过网击球)或未击到球,则判失分,对方加分。重新发球后继续比赛。
译码器:
1
状态机:状态机的一个常用的用处是构成控制步进电机的逻辑电路。表1给出了用于顺时针和逆时针驱动步进电机的二进制码。状态机的设计中我们需要提到一些称为常态和次态的状态,表2列举了步进电机的状态转换顺序。
时钟:
图3.27
四、实验内容
1.用VHDL 语言和原理图分别完成设计、仿真和下载基本逻辑门电路半加器的过程:
输入:a,b;输出:求和sum,进位c;
2. 控制8 个LED 进行花式显示,设计四种显示模式:
1. 从左到右逐个点亮LED;
2. 从右到左逐个点亮LED;
3. 从两边到中间逐个点亮LED;
4. 从中间到两边逐个点亮LED。
四种模式循环切换,由复位键rst 控制系统的运行与停止。
3. 设计一个乒乓球游戏机,模拟乒乓球比赛基本过程和规则,并能自动裁判和计分。
4. 设计一个简单的指令译码器,按指定的
要求
对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗
,对两个逻辑变量进行运算,并将运算的结果在发光二极管上显示。
5.使用VHDL语言,编制一个4相步进电机控制程序,由发光二极管指示步进电机的相序,要求正反转控制,通过改变时钟频率实现调速。
6. 设计一个电子钟,要求可以显示时、分、秒,用户可以设置时间且需要设置的时间显示要求闪烁。
跑马灯:
输入信号:
时钟clk 接10Hz 输入(SW7) P152;
复位rst 接拨动开关I01(拨码开关SW3 左1)P1 ;
输出信号:
8 位输出信号接LED 模块O25—O32。P43~P50;
乒乓球:
输入信号:
控制时钟CLK:可调时钟SW7 输入;
接发球输入Af,Aj,Bf,Bj:脉冲发生器EPI0~EPI3(Pin236 Pin238 Pin237 Pin239);系统复位Clr:拨码开关I01;
输出信号:
乒乓球信号shift[15..0]:LED 显示模块O25~O40;
计分输出q[6..0]:七段数码管O56~O50(Pin79~Pin73)(JP1);
Sellread[3..0]:数码管选择SO61~SO58(Pin86~Pin83)(数码管跳线接左侧扫描方式)。译码器:
输入信号:译码器输入开关c、b、a 接拨动开关I01(拨码开关SW3 左1 P1)、I02(拨码开关SW3 左2 P2)、I03(拨码开关SW3 左3 P3),输入数据data1、data2接IO9(拨码开关SW4 左1 P11)、IO10(拨码开关SW3 左2 P12)
输出信号:LED 模块O25 P43;
步进机:
输入信号:
时钟clk 接10Hz 输入(SW7) P152;方向dir接拨动开关I01(拨码开关SW3 左1)P1 ;
输出信号:4 位输出信号接LED 模块O25—O28。P43~P46;
电子钟:
输入信号:
时钟clk:接开发板可调时钟SW7(P152),选择100KHz 频率;
模式选择mode:接脉冲发生器模块EPI0;P236
时间设定set:接脉冲发生模块EPI1;P238
输出信号:
Seg7[7.. 0]接数码管段扫描信号O50~O56、SO57;P73、74、75、76、77、78、79、82 Segctr[7..0]接数码管位选显示信号S O58~S O65;P83、84、85、86、87、88、93、94 CLR ;P1 清零信号
1. 新建文本文件
2. 建立工程项目
3. 编译并综合
4. 设计仿真
5. 管脚的分配与定位
6. 硬件连接
7. 器件下载编程与硬件实现
七、实验操作
1. 跑马灯:下载程序,将SW7 拨至第二段(10Hz),拨码开关SW3 的IO1 拨至ON 的位置,此时,LED 灯的前8 位会有规律的闪烁。
2. 乒乓球:下载程序,将SW3 的IO1 拨到ON 后可进行比赛,PULS1 为甲方发球,PULS2 为甲方接球,PULS3 为乙方发球,PULS4 为乙方接球。LED 灯中,始终点亮的代表球网,将SW7 拨至第四段的位置。点击发球之后,双方可进行比赛,比赛规则参照实验原理部分。
3. 译码器:改变译码器的输入值(a、b、c)和输入数据值(data1、data2),输出数据按设计值输出
4. 步进机:下载程序,将SW7 拨至第二段(10Hz),此时,LED 灯的前1 位会有规律的闪烁。改变方向开关的电平信号,指示灯的移动方向立即改变。
5. 电子钟:下载程序,按PULSE1 可进行时、分、秒的切换,按PULSE2 可以对时,分,秒进行设置,I01为系统的使能,I01 为off 时开始计时。
1.半加器
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity halfadd is
port(a:in std_logic;
b:in std_logic;
sum:out std_logic;
c,d:out std_logic);
end;
architecture main of halfadd is
begin
c<=a and b;
sum<=a xor b;
end;
2.跑马灯
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;
entity led is
port(clk:in std_logic;
rst:in std_logic;
q :out std_logic_vector(7 downto 0));
end;
architecture led of led is
constant s0:std_logic_vector(1 downto 0):="00"; --模式1
constant s1:std_logic_vector(1 downto 0):="01"; --―模式2
constant s2:std_logic_vector(1 downto 0):="10"; --―模式3
constant s3:std_logic_vector(1 downto 0):="11"; --―模式4
signal present:std_logic_vector(1 downto 0); -- ――当前模式
signal q1:std_logic_vector(7 downto 0);
signal count:std_logic_vector(3 downto 0);
begin
process(rst,clk)
begin
if(rst='0')then -- ――系统初始化present<=s0;
q1<=(others=>'0');
elsif(clk'event and clk='1')then
case present is
when s0 => if(q1="00000000")then --――S0模式:从左到右逐个点亮LED
q1<="10000000";
else if(count="0111")then
count<=(others=>'0');
q1<="00000001";
present<=s1;
else q1<=q1(0) & q1(7 downto 1);