随堂实验一(1)_第1页
随堂实验一(1)_第2页
随堂实验一(1)_第3页
随堂实验一(1)_第4页
随堂实验一(1)_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、可编程逻辑器件实验报告姓名: 学号:班级: 指导老师实验一 ADS集成开发环境练习以及GPIO、12C接口实验和嵌入式系统交叉编译开发平台的建立一、实验目的1、了解ADS1.2 集成开发环境的使用方法;2、了解GPIO、12C接口实验;3、了解嵌入式系统交叉编译开发平台的建立。二、实验设备硬件:PC机 一台软件:Windows98/XP/2000 系统,ADS1.2集成开发环境(三、实验内容(1)建立一个新的工程。(2)建立一个汇编文件,并添加到工程中。(3)设置文本编辑器支持中文。(4)设置编译链接控制选项。(5)编译链接工程。(6)调试工程。)三、实验步骤ADS集成开发环境练习:(1)在D

2、:新建一个目录,目录名为experiment。(2)选择【File】-> 【New】建立一个新的文件test1.s,设置直接添加到项目中。(3)由于ADS安装以后默认字体是Courier New,对于中文支持不完善,因此建议修改字体。(4)选择【Edit】->【DebugRel Settings】,在弹出的对话框的左边选择ARM Linker项,在Output页设置链接地址为Simple。(5)选择【Project】-> 【Make】,编译链接整个工程,工程进行仿真。(6)选择【Project】-> 【Debug】, IDE环境将会启动AXD调试软件,执行单步、全速运行

3、调试。(7)实验程序AREAEXAMPLE1,CODE,READONLY;声明代码段EXAMPLE1ENTRY;标识程序入口CODE32;声明32位ARM指令STARTMOV R0,#15;设置参数MOVR1,#8;ADDSR0,R0,R1;R0=R0+R1BSTARTENDGPIO、12C接口实验:GPIO(General Purpose I/O,通用输入/输出接口)也称为并行I/O(parallel I/O),是最基本的I/O形式,由一组输入引脚、输出引脚或输入/输出引脚组成,CPU对它们能够进行存取操作每个引脚的功能必须在启动主程序之前进行定义。如果一个引脚没有使用复用功能,那么它可以配

4、置为I/O口。利用普通I/O模拟12 C:12C总线传输有严格的数据定义,一个7位地址传输方式的过程如下图:对于传输过程中的状态对应的电平信号,分为几种。(1)无数据:SCL=1,SDA=1;(2)开始位:当SCL=1时,SDA由1向0跳变;(3)停止位:当SCL=1时,SDA由0向1跳变;(4)数据位:当SCL由0向1跳变时,由发送方控制SDA,此时SDA为有效数据,不可随意改变SDA,当SCL保持为0时,SDA上的数据可随意改变;(5)地址位:定义同数据位,但只由Master发给Slave;(6)应答位:当发送方传送完8位时,发送方释放SDA,由接收方控制SDA,且SDA=0;(7)否应答

5、位:当发送方传送8位时,发送方释放SDA,由接收方控制SDA,且SDA=1。一般来说,上述总线的控制由12C总线控制器来完成。但由于有些器件具备的12C接口没有或者很少,这就是需要普通I/O口扮演时钟线和数据线,由软件模拟12C协议来完成通信的需求。嵌入式系统交叉编译开发平台的建立: 1、安装Fedora9 2、安装交叉编译器 3、烧写最新Linux系统的Image到开发板 四、实验心得 通过这节课,我们了解了ADS1.2 集成开发环境的使用方法,对GPIO、12C接口实验有了初步认识,并对嵌入式系统交叉编译开发平台的建立进行了学习。实验二 基于wince驱动程序的开发及应用程序的开发流程一、

6、 实验目的1、 了解基于wince驱动程序的开发;2、 了解基于wince应用程序的开发流程。二、 实验设备硬件:PC机 一台软件:VS2005 三、 实验内容及步骤(一)基于wince驱动程序的开发。1. 下载并安装好BSP安装包2. 打开VS2005,在目录E:/WINCE600/OSDesigns/S3C6410_DEMO/下找到所安装BSP包下的.sln文件,选中打开。 3. 在/WINCE600/PLATFORM/SRC/DRIVER/目录下新建一个驱动工程Subproject2,里边含空文件。4. 在include files文件夹下添加.h头文件,在source files文件夹

7、下添加.c源文件。 5. 在目录E:/WINCE600/PLATFORM/mybsp1/Parameter Files/下编辑修改.bib二进制镜像文件构建文件和.reg注册表文件。6. 编译新建的驱动工程,然后编译整个mybsp1包,则生成的CE系统镜像文件就包含所写驱动。(二)基于wince应用程序的开发流程1、PC机平台VS2005的安装 在PC机平台上搭建VS2005集成开发环境,需要安装的软件包括:安装VS2005及相关补丁,包括VS 2005,VS2005 SP1补丁。安装开发板光盘中的Mini6410开发板SDK。2、 开发板平台WinCE6.0操作系统的安装 在PC平台上搭建完

8、VS2005开发环境之后,在Mini6410开发板上安装WinCE6.0操作系统。主要过程包括:在PC平台上安装WinCE6.0及其补丁,在PC平台上安装开发板BSP源码包,通过VS2005编译WinCE6.0系统内核,将编译好的镜像烧录到开发板中。3、搭建WinCE6.0应用程序开发环境搭建WinCE6.0应用程序开发环境搭建,主要过程包括: 通过USB下载线将开发板Mini USB串口与PC机USB接口连接。给开发板上电,在PC平台对Windows Mobile设备中心6.1进行连接设置,将“允许连接到以下任一端口(N):”选项设置为DMA。 启动VS2005并进行WinCE6.0开发环境

9、的设置(这里选用借助开发板SDK利用C+进行应用程序编写)。在VS2005中新建WinCE应用程序工程,工程类型选择为: VS2005->File->New->Project-> Visual C+ ->Smart Device->Win32 Smart Device Project。工程选项设置中SDK选择为TE6410 Board。 应用程序编写完毕,选择Tools->Conn-ect to Device与开发板进行连接。连接成功之后选择Build->Deploy Sol-ution进行应用程序部署,最后通过Ctrl+F5进行应用程序在开发板

10、上的运行调试。四、 实验心得 通过这节课的学习,我们学会基于wince驱动程序的开发和应用程序的开发流程。实验三 Quartus软件的使用方法和对开关、发光二极管和多路器的认识,及采用FPGA器件设计加法器、减法器和乘法器一、实验目的1、了解Quartus软件的使用方法;2、了解对开关、发光二极管和多路器的认识;3、采用FPGA器件设计加法器、减法器和乘法器。二、实验软件QuartusII软件三、实验内容及步骤(一) Quartus软件的使用方法设计输入1.建立工程(1)打开建立新工程管理窗。(2)将设计文件加入工程中。(3)选择目标芯片。(4)单击“Next”按钮后进入第三方工具选择对话框。

11、用户可以选择所用到的第三方工具,比如ModleSim、Synplify等。 (5)单击“Next”按钮后进入最后确认的对话框。建立的工程的名称、选择的器件和选择的第三方工具等信息,如果无误的话就可以单击“Finish”按钮,弹出窗口,在资源管理窗口可以看到新建的工程名称half_add。当工程建立好以后,建立设计文件。2.VHDL语言输入(1)建立文件。(2)输入程序,输入VHDL程序。(3)保存文件。(4)编译工程。设计仿真1.仿真文件的生成(1)建立矢量波形文件。(2)添加引脚或节点。(3)编辑输入信号并保存文件。2. 功能仿真 功能仿真是忽略延时的仿真,是理想的仿真。接下来我们一起来进行

12、设计的功能仿真。首先单击“Assignments”菜单下的“Settings”命令单击左侧标题栏中的“Simulator”选项后,在右侧的“Simulation mode”的下拉菜单中选择“Functional”选项即可(软件默认的是“Timing”选项),单击“OK”按钮后完成设置。3.时序仿真QuartusII中默认的仿真为时序仿真,直接单击仿真按钮 即可。 引脚锁定引脚锁定是为了对所设计的工程进行硬件测试,将输入/输出信号锁定在器件的某些引脚上 双击与输入端“A”对应的“Location”选项后弹出引脚列表,从中选择合适的引脚,则输入“A”的引脚锁定完毕。同理完成其他引脚的锁定。编程下载

13、编程下载是将本次设计所生成的文件通过计算机下载到实验箱里,来验证此次设计是否能够达到预期目的。需要进行以下几个步骤:1. 编译锁定引脚后必须再次编译,才能存储这些引脚锁定的信息,单击编译按钮,执行编译。2. 配置下载电缆 在“Tools”菜单下选择“Programmer”命令,或者直接单击工具栏上的按钮,弹出页面。3.下载模式JTAG模式是软件的默认下载模式,相应的下载文件为“.sof”格式。开关、发光二极管和多路器的认识用于辅助调试,直观显示运行结果。由于芯片管脚和电路板面积限制,每种器件数目都不多,主要是起到示例作用1.十二个发光二极管(LED)七段数码显示器电路连接:其中底板的八个与七段

14、数码显示器复用,核心板上的四个单独使用LED 管脚映射器件 信号名称 FPGA对应管脚号核心板DD1 LED0 B12DD2 LED1 A12DD2 LED2 B11DD3 LED3 F4底板D1 LED_A A17D2 LED_B E17D3 LED_C B16D4 LED_D D16D5 LED_E A14D6 LED_F C15D7 LED_G E15D8 LED_DP E12 2.四位拨码开关和两个功能按键􀁺 电路连接拨码开关: 默认状态是高电平(1),当开关打开(ON),变成低电平(0);功能按键: 默认状态是高电平(1),当按下按键, 变成低电平(0);(三)采用

15、FPGA器件设计加法器、减法器和乘法器1、加法器的设计 本次设计的加法器属于多位加法器的范畴,可按其进位方式的不同分为两类:串行进位加法器和并行进位加法器。串行进位加法器是将多个一位全加器级联,低位全加器的进位输出送给相邻高位全加器作为进位输入,以此构成多位加法器。加法器的原理框图如图所示。 加法器要有被加数、加数和进位位的输入端口。设a端口为被加数,b端口为加数,ci为输入进位。2、减法器的设计首先设计一个四位二进制数的减法器,四位全减器的原理框图如图所示。由图可以看出,此减法器共需要两个输入端口和一个输出端口。此减法器可以进行位数扩展,每增加一位需要多引用一个加法器。 3、乘法器的设计乘法

16、器是数字系统中的基本逻辑器件,在很多应用中都会出现如各种滤波器的设计、矩阵的运算等。这里设计的是一个4×4的乘法器。依据乘法器的原理,可以绘出其原理框图如图所示。可设a端口为被乘数(一个4位二进制数),b端口为乘数(一个4位二进制数),y为乘法运算的结果的输出端口。四、实验心得 通过这节课的学习,我了解了Quartus软件的使用方法,了解了对开关、发光二极管和多路器的认识,并对采用FPGA器件设计加法器、减法器和乘法器有了一定的认识,了解了各种算法器的原理与区别。实验四 采用FPGA器件设计锁存器、触发器、寄存器、定时器和计数器一、实验目的 采用FPGA器件设计锁存器、触发器、寄存器

17、、定时器和计数器;二、实验软件QuartusII软件 FPGA器件三、实验内容及步骤(一)采用FPGA器件设计锁存器锁存器是电平触发的存储单元,数据存储的动作取决于输入时钟(或者使能)信号的电平值,仅当锁存器处于使能状态时,输出才会随着数据输入发生变化。简单地说,它有两个输入,分别是一个有效信号EN,一个输入数据信号DATA_IN,它有一个输出Q,它的功能就是在EN有效的时候把DATA_IN的值传给Q,也就是锁存的过程。 应用场合:数据有效迟后于时钟(或者使能)信号有效。这意味着时钟(或者使能)信号先到,数据信号后到。在某些运算器电路中有时采用锁存器作为数据暂存器。(二)采用FPGA器件设计触

18、发器触发器是边沿敏感的存储单元,数据存储的动作有某一信号的上升或者下降沿进行同步的。最基本的就是边沿触发的存储单元。 应用场合:时钟有效迟后于数据有效。这意味着数据信号先建立,时钟信号后建立。在CP上升沿时刻打入到寄存器。(三)采用FPGA器件设计寄存器在实际的数字系统中,通常把能够用来存储一组二进制代码的同步时序逻辑电路称为寄存器由于触发器内有记忆功能,因此利用触发器可以方便地构成寄存器。由于一个触发器能够存储一位二进制码,所以把n个触发器的时钟端口连接起来就能构成一个存储n位二进制码的寄存器。 当一个信号signal的赋值是以一个信号的跳变为条件时,或者说当发生同步赋值时,该信号经过综合编

19、译之后就会产生寄存器。这样的赋值过程只能在进程,函数或过程中出现(一般跟在IF signal's EVENT.或WAIT UNTIL.等语句之后)。(四)采用FPGA器件设计定时器该定时器的程序设计中主要包含CRTL计数模块、SEL2选择模块和DSIP译码器模块三部分的设计。1、模块CTRL计数模块是该定时器的核心部分。RES为复位端,用来清零,采用异步复位方式;CN用于置位,高电平有效。COUT端将在定时结束时产生高电平。LOW和HIGH为四位BCD码输出端口,可用于显示。当CN有效时,CLK脉冲上升沿到来,计数加1;当CN为低电平时,置位结束,进入计时阶段,每60个时钟周期(相当于

20、一分钟)发出一个脉冲,使输出计数减1,直到计时结束,使COUT位为高电平为止。该模块的源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity ctrl is port(cn,res,clk:in std_logic; cout:out std_logic; low,high:out std_logic_vector(3 downto 0) ;end ctrl;architecture rtl of ctrl issignal displow,disphigh:std_logic_ve

21、ctor(3 downto 0); begin a:process(clk,cn,res) variable cnt:integer range 0 to 59; begin if(res='0')then displow<="0000" disphigh<="0000" cnt:=0; cout<='0' ; elseif(clk'event and clk='1')then if cn='1'then if displow<"1001"

22、then displow<=displow+'1' else displow<="0000" disphigh<=disphigh+'1' end if; else if cnt<59 then cnt:=cnt+1; else cnt:=0; if displow>1 then displow<=displow-'1' elseif displow=1 then displow<="0000" if disphigh=0 then cout<='1&

23、#39; end if; elseif(disphigh>0)then disphigh<=disphigh-'1' displow<="1001" end if; end if; end if; end if; end process;high<=disphigh;low<=displow;end rtl;2、选择模块二选一选择模块SEL2的主要作用是接收由ctrl输出的四位BCD码,并通过选择信号sel进行选择输出。其源程序如下: entity sel2 is port(d1,d2:in std_logic_vector(3

24、 downto 0); sel:in std_logic; q:out std_logic_vector(3 downto 0) end sel; architecture rtl of sel2 is begin q<=d1 when sel='1'else d2; end rtl;3、译码器模块译码器模块DISP的作用是对输入四位BCD码进行七段码译码,其输出Q0Q6分别接数码管的ag段,它的操作规程源程序如下: entity disp is port(d:in std_logic_vector(3 downto 0); q:out std_logic_vector(

25、6 downto 0) end disp; architecture rtl of disp is begin process(d) begin case d is when "0000"=>q<="0111111" when "0001"=>q<="0000110" when "0010"=>q<="1011011" when "0011"=>q<="1001111" when &quo

26、t;0100"=>q<="1100110" when "0101"=>q<="1101101" when "0110"=>q<="1111101" when "0111"=>q<="0000111" when "1000"=>q<="1111111" when ohers=>q<="11011111" end case; end process; end rtl;(五)采用FPGA器件设计计数器计数是一种最简单基本的运算,计数器就是实现这种运算的逻辑电路,计数器在数字系统中主要是对脉冲的个数进行计数,以实现测量、计数和控制的功能,同时兼有分频功能,计数器是由基本的计数单

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论