FPGA入门系列实验教程——按键控制LED亮灭

FPGA入门系列实验教程——按键控制LED亮灭
FPGA入门系列实验教程——按键控制LED亮灭

艾米电子工作室FPGA入门系列实验教程

FPGA入门系列实验教程V1.0

前言

目前市场销售FPGA开发板的厂商很多,但大多只提供些简单的代码,没有详尽的文档和教程提供给初学者。经验表明,很多学生在学习FPGA设计技术的过程中,虽然刚开始学习热情很高,但真正坚持下来一直到“学会”的却寥寥无几,除了学生个人毅力的因素外,另外一个更主要的原因就是所选的开发板缺少配套的说明文档和手把手系列的入门教程。原本FPGA的学习门槛相对于单片机来说就高了不少,再加上缺少手把手系列教程资料,这就给初学者学习FPGA增添了更多的困难,很多初学者因为找不到入门的方法而渐渐失去了学习FPGA的兴趣和信心。

作者从接著到系统学习FPGA有两年多的时间了,学习FPGA的时间不长,期间因为没有专业的老师指导,自己摸索学习FPGA走了很多的弯路。有过问题迎刃而解的快乐,也有过苦苦寻求结果和答案的痛苦历程,回想起自己学习FPGA的历程,从开始的茫然,到后来的疯狂看书,购买开发板,在开发板上练习各种FPGA实例,到最后能独立完成项目,一路走来,感受颇多。发觉学习FPGA只要选择正确的方法是有捷径可走的,有很多人学习FPGA很长时间,因为没有找到正确的方法还是停留在入门阶段。

针对现状,作者从初学者的角度出发,结合作者学习FPGA的经验和亲身体会,遵循“宁可啰嗦一点,也不放过细节”的原则编写了详尽的实验教程作为艾米电子工作室开发套件的配套教程使用,主要面向FPGA初学者。FPGA的学习只有通过大量的操作与实践才能很好并快速的掌握。为此本实验教程从点亮LED 灯写起,深入浅出,以图文并茂的方式由易到难地列举了很多实例,采用手把手、Step by Step的方式让初学者以最快的方式掌握FPGA技术的开发流程以及Quartus II软件的使用,从而激起初学者学习FPGA的兴趣。在教程中作者采用“授人以渔”的方式,努力做到不仅讲述怎样进行试验,而且分析为什么这样做,以便初学者深刻理解并快速掌握FPGA的学习方法。

本实验教程的所有实例均在艾米电子工作室开发套件上验证通过,本教程虽然简单但编写也花费了作者大量的时间和精力,对于转载需要注明出处:https://www.360docs.net/doc/9b11991859.html,(艾米电子工作室作者:静水流深),并未经艾米电子工作室同意不得用于其他商业用途。

FPGA技术是不断发展变化的,要掌握FPGA技术的精髓,需要设计者在实践中不懈地摸索与积累,逐步提高自己的设计水平,本实验教程试图对初学者起到快速入门的作用。但由于作者学习FPGA时间不长,水平有限,错漏和不严谨之处在所难免,欢迎大家批评指正。并请您将阅读中发现的错误或建议发送到作者Email:zhoujie9220@https://www.360docs.net/doc/9b11991859.html,,以使本教程不断地完善。

FPGA入门系列实验教程——按键控制LED亮灭

1.实验任务

实现按键控制LED亮灭。通过这个实验,掌握采用Verilog HDL语言编程实现按键控制LED亮灭方法。

2.实验环境

硬件实验环境为艾米电子工作室型号EP2C8Q208C8增强版开发套件。

软件实验环境为Quartus II8.1开发软件。

3.实验原理

当独立按键key1按下后,相应的LED被点亮;再次按下后,LED做翻转输出,即LED熄灭,从而实现按键控制LED亮灭。本实验没有对按键做消抖处理。

4.实验程序

module key(rst_n,clk,key,led);

input rst_n;

input clk;

input key;

output led;

reg led;

always@(posedge clk or negedge rst_n)

if(!rst_n)

led<=1'b0;

else if(!key)

led<=~led;

endmodule

5.实验步骤

(1)建立新工程项目:

打开Quartus II软件,进入集成开发环境,点击File→New project wizard建立一个工程项目key。

(2)建立文本编辑文件:

点击File→New..在该项目下新建Verilog HDL源程序文件key.v,输入

试验程序中的源程序代码保存后选择工具栏中的

按钮,配置rst_n,,key,led以及clk的引脚。

(5)编译工程项目:

在Quartus II主页面下,选择Processing→Start Compilation或点击工具

栏上的

实验七 LED灯控制实验

实验七LED灯控制实验 一、实验目的 1、掌握通过文件系统操作I/O设备的方法; 2、学会使用S5PV210 的GPIO设备实现简单的功能。 二、实验设备 1)装有Ubuntu系统或装有Ubuntu虚拟机的PC 机一台; 2)A8嵌入式实验箱一台; 3)本实验用到的实验箱模块有:S5PV210 CPU板模块,LED 模块 三、实验要求 循环让led1-led4点亮 四、实验原理 在Linux 系统中,所有设备都是以文件的形式被打开并进行读/写操作的,本实验中使用POSIX容的文件操作接口函数对底层设备进行操作。POSIX是Portable Operating System Interface foIX的首字母缩写词,是一套IEEE 和ISO标准。这个标准定义了应用程序和操作系统之间的一个口。只要保证他们的程序设计的符合POSIX 标准,开发人员就能确信他们的程序可以和支持SIX 的操作系统互联。这样的操作系统包括大部分版本的UNIX。POSIX 标准现在由IEEE 的一分支机构Portable Applications Standards Committee(PASC)维护。 本实验需要用到以下几个文件操作函数: 【函数原型】int open(const char *pathname, int oflag); int open(const char *pathname, int oflag, mode_t mode); 【功能】打开名为path 的文件或设备,成功打开后返回文件句柄。 【参数】pathname : 文件路径或设备名 oflag : 打开方式。可选值可以是表1.1中的一个值或几个值的组合 【返回值】成功打开后返回文件句柄,失败返回-1 【头文件】使用本函数需要包含。 表 1.1 打开方式对照表

FPGA入门及Quartus II使用教程(内部资料)

FPGA入门及Quartus II使用教程FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在可编程阵列逻辑PAL(Programmable Array Logic)、门阵列逻辑GAL(Gate Array Logic)等可编程器件的基础上上进一步发展的产物。 可以这样讲,ASIC(Application Specific Integrated Circuit )内部的所有资源,是用积木堆积起来的小房子,可以是一个欧美风情的房子,还可以是一个北京四合院…….而FPGA内部就可以说是一个个小积木,也就是内部有大量的资源提供给我们,根据我们的需求进行内部的设计。并且可以通过软件仿真,我们可以事先验证设计的正确性。 第一章FPGA的基本开发流程 下面我们基于Altera 公司的QuantusII 软件来说明FPGA 的开发流程。 下图是一个典型的基于Quartus II的FPGA开发整体流程框图。

1、建立工程师每个开发过程的开始,Quartus II以工程为单位对设计过程进行管 理。 2、建立顶层图。可以这样理解,顶层图是一个容器,将整个工程的各个模块包 容在里边,编译的时候就将这些模块整合在一起。也可以理解为它是一个大元件,比如一个单片机,内部包含各个模块,编译的时候就是生成一个这样的大元件。 3、采用ALTERA公司提供的LPM功能模块。Quartus软件环境包含了大量的常 用功能模块,比如计数器、累加器、比较器等等。 4、自己建立模块。由于有些设计中现有的模块功能不能满足具体设计的要求, 那就只能自己设计。使用硬件描述语言,当然也可以用原理图的输入方法,可以独立的把它们当成一个工程来设计,并且生成一个模块符号(Symbol),类似于那些LPM功能模块。这里可以理解为,如果我们需求的滤波器,没有现成的合适的,那我们可以通过LC自己来搭建一个滤波器。 5、将顶层图的各个功能模块连线起来。这个过程类似电路图设计,把各个芯片 连起来,组成电路系统。 6、系统的功能原理图至此已经基本出炉了,下一步就是选择芯片字载体,分配 引脚,设置编译选项等等。 7、编译。这个过程类似软件开发里德编译,但是实际上这个过程比软件的编译 复杂的多,因为它最终要实现硬件里边的物理结构,包含了优化逻辑的组合,综合逻辑以及布线等步骤。 8、编译后会生成2个文件,一个是*.sof文件,一个是*.pof文件,前者可以通过 JTAG方式下载到FPGA内部,可以进行调试,但断电后数据丢失;后者通过AS或者PS方式下载到FPGA的配置芯片里边(EEPROM或者FLASH),重新上电后FPGA会通过配置将数据读出。 9、对于复杂的设计,工程编译好了,我们可以通过Quartus软件或者其他仿真 软件来对设计进行反复仿真和验证,直到满足要求。(主要是时序仿真)。 第二章基于Quartus II的实例 一、建立工程 首先,打开Quartus II软件。

使用QUARTUS II做FPGA开发全流程,傻瓜式详细教程

My First FPGA Design Tutorial 101 Innovation Drive San Jose, CA 95134 (408) 544-7000 https://www.360docs.net/doc/9b11991859.html, TU-01002-1.0

Copyright ? 2007 Altera Corporation. All rights reserved. Altera, The Programmable Solutions Company, the stylized Altera logo, specific device des-ignations, and all other words and logos that are identified as trademarks and/or service marks are, unless noted otherwise, the trademarks and service marks of Altera Corporation in the U.S. and other countries. All other product or service names are the property of their respective holders. Al-tera products are protected under numerous U.S. and foreign patents and pending applications, maskwork rights, and copyrights. Altera warrants performance of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any products and services at any time without notice. Altera assumes no responsibility or liability arising out of the ap- plication or use of any information, product, or service described herein except as expressly agreed to in writing by Altera Corporation. Altera customers are advised to obtain the latest version of device specifications before relying on any published in- formation and before placing orders for products or services. Printed on recycled paper

FPGA开发入门教程

Altera FPGA开发入门教程

目录 目录 第一章 Altera FPGA 开发流程概述 (1) 1.1 你需要准备的 (1) 1.2 Altera FPGA 基本开发流程 (1) 第二章 QuartusII 软件安装教程 (4) 第三章 完成第一个FPGA设计 (20) 3.1 启动和建立QuartusII工程 (20) 3.2 编辑我们的设计文件 (27) 3.3 综合、布局布线 (30) 3.4 引脚约束 (34) 3.5 再次综合、布局布线 (37) 第四章 配置FPGA (38) 4.1 JTAG配置 (38) 4.2 JIC烧写 (42)

第一章Altera FPGA 开发流程概述 本章介绍Altera FPGA的最基本最简单的开发流程,目的在于让您更直观了解FPGA开发设计过程,最快上手FPGA开发,最快找到感觉:-) 1.1你需要准备的 ●兴趣 无需多言,兴趣是最好的老师! ●基本电路知识 学习FPGA最好能懂一些模拟电路和数字电路的基础知识,比如知道什么是高电平、低电平、逻辑门、触发器、电阻电容、发光二极管等。只需基本概念即可,不要求你是专家。当然,如果你有单片机之类的开发经验,那会更好! ●Verilog语言 是的,我们用Verilog进行FPGA设计。因为近年来,Verilog的使用率已经远远超过VHDL。你不需要太精通Verilog的语法,但是你需要用硬件的思维来学习和使用Verilog。在接下来的FPGA学习中,我们会反复强调这一点,以便带给你更深的体会。 ●硬件平台 纸上得来终觉浅。一块优秀而又易用的入门级FPGA开发板,会祝您一臂之力! 1.2A ltera FPGA 基本开发流程 图1- 1展示了Altera FPGA的基本开发流程。 1

键盘及LED显示实验

实验三键盘及LED显示实验 一、实验内容 利用8255可编程并行接口控制键盘及显示器,当有按键按下时向单片机发送外部中断请求(INT0,INT1),单片机扫描键盘,并把按键输入的键码一位LED 显示器显示出来。 二、实验目的及要求 (一)实验目的 通过该综合性实验,使学生掌握8255扩展键盘和显示器的接口方法及C51语言的编程方法,进一步掌握键盘扫描和LED显示器的工作原理;培养学生一定的动手能力。 (二)实验要求 1.学生在实验课前必须认真预习教科书与指导书中的相关内容,绘制流程图,编写C51语言源程序,为实验做好充分准备。 2.该实验要求学生综合利用前期课程及本门课程中所学的相关知识点,充分发挥自己的个性及创造力,独立操作完成实验内容,并写出实验报告。 三、实验条件及要求 计算机,C51语言编辑、调试仿真软件及实验箱50台套。 四、实验相关知识点 1.C51编程、调试。 2.扩展8255芯片的原理及应用。 3.键盘扫描原理及应用。 4.LED显示器原理及应用。 5.外部中断的应用。 五、实验说明 本实验仪提供了8位8段LED显示器,学生可选用任一位LED显示器,只要按地址输出相应的数据,就可以显示所需数码。 六、实验原理图

P1口桥接。 八、实验参考流程图 1.主程序流程图

2.外中断服务程序流程图 外部中断0 外部中断1 定时器0中断程序,用于消抖动:

3.LED显示程序流程图 九、C51语言参考源程序 #include "reg52.h" unsigned char KeyResult; //存放键值 unsigned char buffer[8]; //显示缓冲区 bit bKey; //是否有键按下 xdata unsigned char P_8255 _at_ 0xf003; //8255的控制口 xdata unsigned char PA_8255 _at_ 0xf000; //8255的PA口 xdata unsigned char PB_8255 _at_ 0xf001; //8255的PB口 xdata unsigned char PC_8255 _at_ 0xf002; //8255的PC口 code unsigned char SEG_TAB[] = { //段码 0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6,0xee,0x3e,0x9c,0x7a,0x9e,0x8e,0x0}; sbit bLine0 = P3^2; sbit bLine1 = P3^3; //延时1ms void Delay1ms() { unsigned char i;

FPGA学习指南

PS:笔者强烈建议诸位注册一个EETOP的账号,每天签到或者发贴、回贴就有积分了,里面的资源非常丰富,各种软件、资料都能找到。 一、入门首先要掌握HDL(HDL=verilog+VHDL)。 第一句话是:还没学数电的先学数电。然后你可以选择verilog或者VHDL,有C语言基础的,建议选择VHDL。因为verilog太像C了,很容易混淆,最后你会发现,你花了大量时间去区分这两种语言,而不是在学习如何使用它。当然,你思维能转得过来,也可以选verilog,毕竟在国内verilog用得比较多。 接下来,首先找本实例抄代码。抄代码的意义在于熟悉语法规则和编译器(这里的编译器是硅编译器又叫综合器,常用的编译器有:Quartus、ISE、Vivado、Design Compiler、Synopsys的VCS、iverilog、Lattice的Diamond、Microsemi/Actel的Libero、Synplify pro),然后再模仿着写,最后不看书也能写出来。编译完代码,就打开RTL图,看一下综合出来是什么样的电路。 HDL是硬件描述语言,突出硬件这一特点,所以要用数电的思维去思考HDL,而不是用C语言或者其它高级语言,如果不能理解这句话的,可以看《什么是硬件以及什么是软件》。在这一阶段,推荐的教材是《Verilog传奇》、《Verilog HDL高级数字设计》或者是《用于逻辑综合的VHDL》。不看书也能写出个三段式状态机就可以进入下一阶段了。 此外,你手上必须准备Verilog或者VHDL的官方文档,《verilog_IEEE官方标准手册-2005_IEEE_P1364》、《IEEE Standard VHDL Language_2008》,以便遇到一些语法问题的时候能查一下。 二、独立完成中小规模的数字电路设计。 现在,你可以设计一些数字电路了,像交通灯、电子琴、DDS等等,推荐的教材是《Verilog HDL应用程序设计实例精讲》。在这一阶段,你要做到的是:给你一个指标要求或者时序图,你能用HDL设计电路去实现它。这里你需要一块开发板,可以选Altera的cyclone IV系列,或者Xilinx的Spantan 6。还没掌握HDL之前千万不要买开发板,因为你买回来也没用。这里你没必要每次编译通过就下载代码,咱们用modelsim仿真(此外还有QuestaSim、NC verilog、Diamond的Active-HDL、VCS、Debussy/Verdi等仿真工具),如果仿真都不能通过那就不用下载了,肯定不行的。在这里先掌握简单的testbench就可以了。推荐的教材是《WRITING TESTBENCHES Functional Verification of HDL Models》。 三、掌握设计方法和设计原则。 你可能发现你综合出来的电路尽管没错,但有很多警告。这个时候,你得学会同步设计原则、优化电路,是速度优先还是面积优先,时钟树应该怎样设计,怎样同步两个异频时钟 《Altera FPGA/CPLD 等等。推荐的教材是《FPGA权威指南》、《IP核芯志-数字逻辑设计思想》、 设计》第二版的基础篇和高级篇两本。学会加快编译速度(增量式编译、LogicLock),静态时序分析(timequest),嵌入式逻辑分析仪(signaltap)就算是通关了。如果有不懂的地方可以暂时跳过,因为这部分还需要足量的实践,才能有较深刻的理解。 四、学会提高开发效率。 因为Quartus和ISE的编辑器功能太弱,影响了开发效率。所以建议使用Sublime text 编辑器中代码片段的功能,以减少重复性劳动。Modelsim也是常用的仿真工具,学会TCL/TK 以编写适合自己的DO文件,使得仿真变得自动化,推荐的教材是《TCL/TK入门经典》。你可能会手动备份代码,但是专业人士都是用版本控制器的,所以,为了提高工作效率,必须掌握GIT。文件比较器Beyond Compare也是个比较常用的工具。此外,你也可以使用System Verilog来替代testbench,这样效率会更高一些。如果你是做IC验证的,就必须掌

FPGA入门系列实验教程——LED跑马灯

艾米电子工作室FPGA入门系列实验教程 FPGA入门系列实验教程V1.0 前言 目前市场销售FPGA开发板的厂商很多,但大多只提供些简单的代码,没有详尽的文档和教程提供给初学者。经验表明,很多学生在学习FPGA设计技术的过程中,虽然刚开始学习热情很高,但真正坚持下来一直到“学会”的却寥寥无几,除了学生个人毅力的因素外,另外一个更主要的原因就是所选的开发板缺少配套的说明文档和手把手系列的入门教程。原本FPGA的学习门槛相对于单片机来说就高了不少,再加上缺少手把手系列教程资料,这就给初学者学习FPGA增添了更多的困难,很多初学者因为找不到入门的方法而渐渐失去了学习FPGA的兴趣和信心。 作者从接著到系统学习FPGA有两年多的时间了,学习FPGA的时间不长,期间因为没有专业的老师指导,自己摸索学习FPGA走了很多的弯路。有过问题迎刃而解的快乐,也有过苦苦寻求结果和答案的痛苦历程,回想起自己学习FPGA的历程,从开始的茫然,到后来的疯狂看书,购买开发板,在开发板上练习各种FPGA实例,到最后能独立完成项目,一路走来,感受颇多。发觉学习FPGA只要选择正确的方法是有捷径可走的,有很多人学习FPGA很长时间,因为没有找到正确的方法还是停留在入门阶段。 针对现状,作者从初学者的角度出发,结合作者学习FPGA的经验和亲身体会,遵循“宁可啰嗦一点,也不放过细节”的原则编写了详尽的实验教程作为艾米电子工作室开发套件的配套教程使用,主要面向FPGA初学者。FPGA的学习只有通过大量的操作与实践才能很好并快速的掌握。为此本实验教程从点亮LED 灯写起,深入浅出,以图文并茂的方式由易到难地列举了很多实例,采用手把手、Step by Step的方式让初学者以最快的方式掌握FPGA技术的开发流程以及Quartus II软件的使用,从而激起初学者学习FPGA的兴趣。在教程中作者采用“授人以渔”的方式,努力做到不仅讲述怎样进行试验,而且分析为什么这样做,以便初学者深刻理解并快速掌握FPGA的学习方法。 本实验教程的所有实例均在艾米电子工作室开发套件上验证通过,本教程虽然简单但编写也花费了作者大量的时间和精力,对于转载需要注明出处:https://www.360docs.net/doc/9b11991859.html,(艾米电子工作室作者:静水流深),并未经艾米电子工作室同意不得用于其他商业用途。 FPGA技术是不断发展变化的,要掌握FPGA技术的精髓,需要设计者在实践中不懈地摸索与积累,逐步提高自己的设计水平,本实验教程试图对初学者起到快速入门的作用。但由于作者学习FPGA时间不长,水平有限,错漏和不严谨之处在所难免,欢迎大家批评指正。并请您将阅读中发现的错误或建议发送到作者Email:zhoujie9220@https://www.360docs.net/doc/9b11991859.html,,以使本教程不断地完善。

EDA技术按键控制LED实验

昆明理工大学信息工程与自动化学院学生实验报告 ( 201 —201 学年第学期) 课程名称:EDA技术开课实验室:年月日 一、实验目的 1、熟悉FPGA开发完整流程 2、熟悉管脚分配,熟悉编程 二、实验设备 1、带有quartusII 软件的PC 机一台。 2、 FPGA 实验箱以及电源线下载线。 三、实验要求 实现8 个SW 按键控制8 个led 灯亮灭。

四、实验原理 1、按键控制led 灯原理: 本实验是通过按键的电平控制led灯。其示意图如图 2.1。 图 2.1按键控制led 示意图 8 个SW 按键控制相对的8 个led 灯,当SW1 在上方,其余按键在下方时,此时SW1 为高电平,这时SW1 对应的led 被点亮。 2、模块符号: 图 2.2为按键控制led模块符号。 图 2.2 按键控制led 模块符号 3、源码: module key1(key,led); input[7:0] key; output[7:0] led; reg[7:0] led; always@(key) begin case(key) 8'b00000001:led<=8'b00000001; 8'b00000010:led<=8'b00000010; 8'b00000100:led<=8'b00000100; 8'b00001000:led<=8'b00001000; 8'b00010000:led<=8'b00010000; 8'b00100000:led<=8'b00100000; 8'b01000000:led<=8'b01000000; 8'b00000000:led<=8'b00000000; endcase end endmodule 五、实验步骤 1、打开quartusII 开发环境,建立工程、添加相应源文件(选目标芯片时,应采用EP2C35F672C8芯片)。 2、分配管脚 1)修改tcl 文件:

实验六LED 控制实验

实验六LED 控制实验 一、实验目的 通过实验学习如何将一个驱动添加到Kconfig,编译到内核; 通过实验掌握在Linux 下驱动程序的编写方法。 二、实验设备 硬件:EduKit-IV 嵌入式教学实验平台、Mini2410 核心子板、PC 机; 软件:Windows 2000/NT/XP、Ubuntu 8.04、其他嵌入式软件包。 三、实验内容 编写EduKit-IV 实验箱Linux 操作系统下LED 灯的应用程序。 编写 EduKit-IV 实验箱Linux 操作系统下LED 灯的驱动; 实验步骤: 下面介绍如何将一个驱动添加到内核中,并且在配置选项中能够通过menuconfig 配置内核时选择该驱动: 1)单击菜单应用程序->附件->终端打开终端,在终端中输入以下命令设置开发所需的环境变量。 $ source /usr/local/src/EduKit-IV/Mini2410/set_env_linux.sh $ source /usr/crosstool/gcc-3.4.5-glibc-2.3.6/arm-linux/path.sh 2)将实验目录$SIMPLEDIR/8.1-led_test/driver 下的eduk4-led.c 复制到目录内核目录$KERNELDIR/drivers/char 下。 3)修改$KERNELDIR/drivers/char 目录下的Kconfig 文件,在文件的末尾按照如下内容修改并保存: …. config MMTIMER tristate "MMTIMER Memory mapped RTC for SGI Altix" depends on IA64_GENERIC || IA64_SGI_SN2 default y help The mmtimer device allows direct userspace access to the Altix system timer. config EDUKIT4_LED tristate "Edukit4 Led" source "drivers/char/tpm/Kconfig" endmenu 这样当make menuconfig 时,将会出现Edukit4 Led 选项。

(LED灯控制实验)

1.实验名称:LED 灯控制实验 2.实验原理:程序通过配置CC2530 IO 寄存器的高低电平来控制LED 灯的状态,用循环语句来实现程序的不间断运行。ZigBee(CC2530)模块硬件上设计有2 个LED 灯,用来编程调试使用。分别连接CC2530 的P1_0、P1_1两个IO 引脚。 3.实验结果:LED1即P1_0输出低电平点亮,LED2即P2_0延时闪烁。 4.实验改进:使LED1和LED2交替闪烁。在LED2延时后改变LED1的状态。 5.代码: #include #define uint unsigned int= #define uchar unsigned char #define LED1 P1_0 #define LED2 P1_1 uint counter=0; uint TempFlag;

void Delay(uint n); void Initial(void); void Delay(uint n) { uint i,t; for(i=0;i<5;i++)= for(t=0;t0) { T1IF=0; TempFlag=!TempFlag; } if(TempFlag) { LED1=!LED1;

Delay(6000); LE D2=!LED2; Delay(60000); } } }

Xilinx_FPGA中文教程

Spartan-3E Starter Kit Board User Guide

Chapter 1: Introduction and Overview Chapter 2: Switches, Buttons, and Knob Chapter 3: Clock Sources Chapter 4: FPGA Configuration Options Chapter 5: Character LCD Screen Chapter 6: VGA Display Port Chapter 7: RS-232 Serial Ports Chapter 8: PS/2 Mouse/Keyboard Port Chapter 9: Digital to Analog Converter (DAC) Chapter 10: Analog Capture Circuit Chapter 11: Intel StrataFlash Parallel NOR Flash PROM Chapter 12: SPI Serial Flash Chapter 13: DDR SDRAM Chapter 14: 10/100 Ethernet Physical Layer Interface Chapter 15: Expansion Connectors Chapter 16: XC2C64A CoolRunner-II CPLD Chapter 17: DS2432 1-Wire SHA-1 EEPROM

Chapter 1:Introduction and Overview Spartan-3E 入门实验板使设计人员能够即时利用Spartan-3E 系列的完整平台性能。 设备支持设备支持::Spartan-3E 、CoolRunner-II 关键特性关键特性::Xilinx 器件: Spartan-3E (50万门,XC3S500E-4FG320C), CoolRunner?-II (XC2C64A-5VQ44C)与Platform Flash (XCF04S-VO20C) 时钟时钟::50 MHz 晶体时钟振荡器 存储器: 128 Mbit 并行Flash, 16 Mbit SPI Flash, 64 MByte DDR SDRAM 连接器与接口: 以太网10/100 Phy, JTAG USB 下载,两个9管脚RS-232串行端口, PS/2类型鼠标/键盘端口, 带按钮的旋转编码器, 四个滑动开关,八个单独的LED 输出, 四个瞬时接触按钮, 100管脚hirose 扩展连接端口与三个6管脚扩展连接器 显示器: VGA 显示端口,16 字符- 2 线式 LCD 电源电源::Linear Technologies 电源供电,TPS75003三路电源管理IC 市场: 消费类, 电信/数据通信, 服务器, 存储器 应用: 可支持32位的RISC 处理器,可以采用Xilinx 的MicroBlaze 以及PicoBlaze 嵌入式开发系统;支持DDR 接口的应用;支持基于Ethernet 网络的应用;支持大容量I/O 扩展的应用。 Choose the Starter Kit Board for Your Needs Spartan-3E FPGA Features and Embedded Processing Functions Spartan3-E FPGA 入门实验板具有Spartan3-E FPGA 系列突出独特的特点和为嵌入式处理发展与应用提供了很大的方便。该板的特点如下: Spartan3-E 特有的特征:并行NOR Flash 配置;通过并行NOR Flash PROM 实现FPGA 的多种配置方式 嵌入式系统:MicroBlaze? 32-bit 嵌入RISC 处理器;PicoBlaze? 8-bit 嵌入控制器;DDR 存储器接口 Learning Xilinx FPGA, CPLD, and ISE Development Software Basics Spartan3-E FPGA 入门实验板比其他的入门实验板先进、复杂。它是学习FPGA 或CPLD 设计和怎样运用ISE 软件的基础。 Advanced Spartan-3 Generation Development Boards 入门实验板示范了MicroBlaze? 32-bit 嵌入式处理器和EDK 的基本运用。其更先进的地方

单片机实验报告——LED灯控制器

《微机实验》报告LED灯控制器 指导教师: 专业班级: 姓名: 学号: 联系方式:

一、任务要求 实验目的:加深对定时/计数器、中断、IO端口的理解,掌握定时/计数器、中断的应用编程技术及中断程序的调试方法。 实验内容:利用C8051F310单片机设计一个LED灯控制器 主要功能和技术指标要求: 1. LED灯外接于P0.0端。 2. LED灯分别按2Hz,1Hz和0.5Hz三种不同频率闪动,各持续10s。 3. 在LED灯开始和停止闪烁时蜂鸣器分别鸣响1次。 4. 利用单片机内部定时器定时,要求采用中断方式。 提高要求: 使用按键(KINT)控制LED灯闪烁模式的切换。 二、设计思路 C8051F310单片机片上晶振为24.5MHz,采用8分频后为3.0625MHz ,输入时钟信号为48个机器周期,所以T1定时器采用定时方式1,单次定时最长可以达到的时间为 1.027s,可以满足0.5Hz是的定时要求。 基础部分: 给TMOD赋值10H,即选用T1定时器采用定时方式1,三种频率对应的半周期时间为0.25s、0.5s、1s。计算得需给TH1和TL1为C1H、B1H;83H、63H;06H、C6H。 要使闪烁持续10s,三种模式需要各循环40、20、10次。 用LOOP3:MOV C,PSW.5 ;PSW.5为标志位,进定时器中断后置一 JNC LOOP3 代替踏步程序等待中断,以便中断完后回到主程序继续向下执行。 为了减少代码长度,可以采用循环结构,循环主题中,将R1、R2分别赋给TH1、TL1,R7为循环次数(用DJNZ语句实现);定时中断里,重新给TH1、TL1赋值时同理。 这样,循环时只要把定时时间和循环次数赋给R1、R2、R7即可,达到减少代码长度的效果。 蜂鸣器也采用T1定时方式1,定时一秒。

FPGA入门实验教程 适合初学者

艾米电子工作室—让开发变得更简单https://www.360docs.net/doc/9b11991859.html, FPGA 入门系列实验教程——点亮LED 1. 实验任务 点亮发光二极管。通过这个实验,熟悉并掌握CPLD/FPGA 开发软件Quartus II 的使用方法和开发流程以及Verilog HDL的编程方法。 2. 实验环境 硬件实验环境为艾米电子工作室型号EP2C5T144 开发套件。 软件实验环境为Quartus II 8.1 开发软件。 3. 实验原理 FPGA 器件同单片机一样,为用户提供了许多灵活的独立的输入/输出I/O 口 (单元)。FPGA 每个I/O 口可以配置为输入、输出、双向、集电极开路和三态门等各种组态。作为输出口时,FPGA 的I/O 口可以吸收最大为24mA 的电流, 可以直接驱动发光二极管LED 等器件。图1. 1 为8 个发光二极管硬件原理图, 本原理图对应艾米电子工作室型号为EP2C5T144 FPGA 开发板及接口板。通过 原理图可知如果要点亮这八个LED,所以只要正确分配并锁定引脚后,在相应 的引脚上输出相应高电平“1”,就可实现点亮该发光二极管的功能。本工作室开 发板均采用输出“1”点亮LED 的模式,以后就不再另作说明。 图1. 1 发光二极管LED 硬件原理图 艾米电子工作室—让开发变得更简单https://www.360docs.net/doc/9b11991859.html, FPGA 入门系列实验教程——LED 闪烁灯 1. 实验任务 让实验板上的8 个LED 周期性的闪烁。通过这个实验,熟悉并掌握采用计数 与判断的方式来实现分频的Verilog HDL 的编程方法以及Quartus II 软件的使 用方法和开发流程。 2. 实验环境 硬件实验环境为艾米电子工作室型号EP2C8Q208 增强版开发套件。 软件实验环境为Quartus II 8.1 开发软件。 3. 实验原理 艾米电子工作室开发套件板载50MHz 的时钟源,假如我们直接把它输入到发光二极管LED,由于人眼的延迟性,我们将无法看到LED 闪烁,认为 它一直亮着。如果我们期望看到闪烁灯,就需要将时钟源的频率降低后再输

CPLD入门教程

目录 前言 (2) 第一章 MAX+plusII 软件和license的获得 (6) 第二章 MAX+plusII 软件的安装和license及驱动的设置 2.1 MAX+plusII 软件的安装 (7) 2.2 MAX+plusII 软件的license设置 (8) 2.3 MAX+plusII 软件的驱动设置 (12) 第三章用VHDL语言设计三人表决器 3.1打开MAX+plusII (22) 3.2新建VHDL文档 (23) 3.3输入设计文件 (24) 3.4保存文件 (25) 3.5检查编译 (27) 3.6创建symbol (32) 3.7波形防真 (33) 3.8下载验证 (40) 第四章用原理图输入的方式设计三人表决器 (47) 第五章用verilog-HDL语言设计三人表决器 (51)

前言 编写本入门教程(V1.2)的目点是为了让FPGA/CPLD初学者快速地入门。该教程的特点是通过基本概念讲解和实际的例子来让初学者迅速了解FPGA/CPLD。该教程是共享文件,可以复制、下载、转载,如果转载该文章请注明出处:https://www.360docs.net/doc/9b11991859.html,;该教程未经许可,不得用于商业用途。 FPGA/CPLD是电子设计领域中最具活力和发展前途的一项技术,它的影响丝毫不亚于70年代单片机的发明和使用。 FPGA/CPLD的基本知识: 1.什么是FPGA/CPLD FPGA (Field Programmable Gate Array)是现场可编程门阵列,CPLD是复杂的可编程逻辑器件(Complex Programmable Logic Device)的简称,不同厂家有不同的称呼,Xilinx把SRAM工艺,要外挂配置用的EEPROM的PLD叫FPGA,把Flash工艺(类似EEPROM工艺),乘积项结构的PLD叫CPLD; Altera把自己的PLD产品MAX系列(EEPROM工艺),FLEX/ACEX/APEX系列(SRAM工艺)都叫作CPLD,即复杂PLD(Complex PLD),由于FLEX/ACEX/APEX系列也是SRAM工艺,要外挂配置用的EPROM,用法和Xilinx的FPGA一样,所以很多人把Altera的FELX/ACEX/APEX系列产品也叫做FPGA. 但由于FPGA和CPLD功能基本相同,只是工艺和实现形式不同,所以初学者可以不要详细区分,我们可以统称为FPGA/CPLD。 2.FPGA/CPLD的用途:

实验一 LED控制实验

实验一 LED控制实验 一.实验目的 在EBDCC2530节点板上运行自己的程序。 通过I/O控制小灯闪烁和蜂鸣器鸣叫。 二.实验环境 硬件:PC机,EBDCC2530节点板,USB接口仿真器。 软件:Windows 98/2000/NT/XP, IAR集成开发环境。 三.实验原理 仔细阅读和查询CC2530设备的数据手册来设置CC2530的I/O引脚,通过I/O引脚输出的高低电平来控制灯的亮与灭和蜂鸣器的鸣叫。本实验设置P1.0、P1.1、P1.4 I/O引脚来选通LED1、LED2、LED3,引脚置为低电平点亮LED,反之熄灭LED。设置P0.1引脚来选通BEEP,引脚置为低电平蜂鸣器鸣叫,反之蜂鸣器不鸣叫。 CC2530的I/O控制口一共有21个,分别为P0、P1、P2。我们以LED1所对应的P1.0引脚所用到的控制寄存器为例,仔细说明控制寄存器中每一位所代表的意义。其他控制寄存器所代表的意义请查看CC2530数据手册。 P1DIR(P1方向寄存器): D7 D6 D5 D4 D3 D2 D1 D0 P1.7方向0:输入1:输出P1.6方 向0: 输入 1:输出 P1.5方 向0: 输入 1:输出 P1.4方 向0: 输入 1:输出 P1.3方 向0: 输入 1:输出 P1.2方 向0: 输入 1:输出 P1.1方 向0: 输入 1:输出 P1.0方 向0: 输入 1:输出 P1SEL(P1功能选择寄存器): D7 D6 D5 D4 D3 D2 D1 D0 P1.7功能 0:普通I/O 1:外设P1.6功 能 0:普 通I/O 1:外设 P1.5功 能 0:普 通I/O 1:外设 P1.4功 能 0:普 通I/O 1:外设 P1.3功 能 0:普 通I/O 1:外设 P1.2功 能 0:普 通I/O 1:外设 P1.1功 能 0:普 通I/O 1:外设 P1.0功 能 0:普 通I/O 1:外设 寄存器的设置: 1)将控制寄存器的某一位置1: 例如:P1DIR |= 0x01; 解释:“|=”表示按位或运算,0x01为十六进制数,转换成二进制数为0000 0001,若P1DIR原来的值为0011 0010,或运算后P1DIR的值为0011 0001,根据上面的计算后P1_0的方向改为输出,其他I/O 口保持不变。 2)将控制寄存器的某一位清0: 例如:P1DIR &= ~0x01; 解释:“&=”表示按位与运算,“~”运算表示取反,0x01为十六进制数,转换成二进制数为1111 1110,P1DIR原来的值为0011 0011,与运算后P1DIR的值为0011 0010,根据上面的计算后P1_0的方向改为输入,其他I/O口保持不变。 四.主要代码 LDE灯实现的主要代码为:

实验二控制LED灯点亮实验(精)

实验二控制 LED 灯点亮实验 一、实验目的 1.. 进一步熟悉单片机编程和程序调试方法 2. 学习 P1口的使用方法 3. 学习延时子程序的编写和应用 二、实验内容 1.让实验板上的第 1、 3、 5、 7位置上的灯与第 2、 4、 6、 8位置上的灯交替闪烁。 2、设计出如下要求的流水灯程序。 变化要求:先从第 4个灯向左逐个点亮,接着从第 5个灯向右逐个点亮,然后, 从第 1个向右、第 8个向左同时开始的向内逐个点亮再从中间向两边逐个点亮的。 三、实验相关说明 1、实验电路原理图

100 注意:在实验报告中,请画出实际运行你程序的电路的原理图 2、 LED 灯控制。 从电路原理图可看到 ,当 P1 .0端口输出高电平,即 P1.0=1时 ,发光二极管 L1熄灭;当 P1 .0输出低电平即 P1 .0=0时, L 1亮;在汇编语言里可用 SETB P1.0指令使 P 1. 0端口输出高电平 ,用 CLR P1.0指令使 P1 .0 端口输出低电平, 从而控制 LED 的亮、灭。注意:实验板是用哪个口连接了 LED 。 3.延时子程序的设计、应用 单片机指令的执行时间很短,时间在微秒级,因此,如果我们想看灯闪烁, 那么就必须在用指令控制灯处于亮或灭的状态后, 保证那状态维持一段时间后再转换成另一状态。如何做到维持一段时间呢?方法有很多, 其中最易实现的一种方法是:通过插入一段程序, 每条指令执行都需要 1个或若干个机器周期的时间。因而执行完这段程序就过了一段时间, 通常把这称为延时。延时程序一般采用单重或多重循环程序。可以根据需要延时的时间来设计这段程序包含哪些指令、循

FPGA入门系列实验教程——点亮LED

FPGA入门系列实验教程V1.0 前言 目前市场销售FPGA开发板的厂商很多,但大多只提供些简单的代码,没有详尽的文档和教程提供给初学者。经验表明,很多学生在学习FPGA设计技术的过程中,虽然刚开始学习热情很高,但真正坚持下来一直到“学会”的却寥寥无几,除了学生个人毅力的因素外,另外一个更主要的原因就是所选的开发板缺少配套的说明文档和手把手系列的入门教程。原本FPGA的学习门槛相对于单片机来说就高了不少,再加上缺少手把手系列教程资料,这就给初学者学习FPGA增添了更多的困难,很多初学者因为找不到入门的方法而渐渐失去了学习FPGA的兴趣和信心。 作者从接著到系统学习FPGA有两年多的时间了,学习FPGA的时间不长,期间因为没有专业的老师指导,自己摸索学习FPGA走了很多的弯路。有过问题迎刃而解的快乐,也有过苦苦寻求结果和答案的痛苦历程,回想起自己学习FPGA的历程,从开始的茫然,到后来的疯狂看书,购买开发板,在开发板上练习各种FPGA实例,到最后能独立完成项目,一路走来,感受颇多。发觉学习FPGA只要选择正确的方法是有捷径可走的,有很多人学习FPGA很长时间,因为没有找到正确的方法还是停留在入门阶段。 针对现状,作者从初学者的角度出发,结合作者学习FPGA的经验和亲身体会,遵循“宁可啰嗦一点,也不放过细节”的原则编写了详尽的实验教程作为艾米电子工作室开发套件的配套教程使用,主要面向FPGA初学者。FPGA的学习只有通过大量的操作与实践才能很好并快速的掌握。为此本实验教程从点亮LED 灯写起,深入浅出,以图文并茂的方式由易到难地列举了很多实例,采用手把手、Step by Step的方式让初学者以最快的方式掌握FPGA技术的开发流程以及Quartus II软件的使用,从而激起初学者学习FPGA的兴趣。在教程中作者采用“授人以渔”的方式,努力做到不仅讲述怎样进行试验,而且分析为什么这样做,以便初学者深刻理解并快速掌握FPGA的学习方法。 FPGA技术是不断发展变化的,要掌握FPGA技术的精髓,需要设计者在实践中不懈地摸索与积累,逐步提高自己的设计水平,本实验教程试图对初学者起到快速入门的作用。但由于作者学习FPGA时间不长,水平有限,错漏和不严谨之处在所难免,欢迎大家批评指正

相关文档
最新文档