《SOPC实验系统简介》PPT课件.ppt_第1页
《SOPC实验系统简介》PPT课件.ppt_第2页
《SOPC实验系统简介》PPT课件.ppt_第3页
《SOPC实验系统简介》PPT课件.ppt_第4页
《SOPC实验系统简介》PPT课件.ppt_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

第 6 章 SOPC实验系统简介,Dr. Zhang Jianping Shanghai University of Electric Power Shanghai , 200090 2009.5,6.1 系统硬件单元,DE2开发板,DE2 是Altera 公司针对大学教学及研究机构 推出的FPGA多媒体开发平台。DE2 为用户提供 了丰富的外设及多媒体特性,并具有灵活而可靠 的外围接口设计。DE2 能帮助使用者迅速理解和 掌握实时多媒体工业产品设计的技巧,并提供系 统设计的验证。DE2 平台的设计和制造完全按照 工业产品标准进行,可靠性很高。,DE2 平台上提供的资源,Altera Cyclone II系列的 EP2C35F672 FPGA U11,内含35 000个逻辑单 主动串行配置器件EPCS16 U30; (3) 板上内置用于编程调试和用户API设计的USB Blaster,支持JTAG模式和AS模式,U25是实现USB Blaster的USB接口芯片FT245B,U26是用以控制和实现JTAG模式和AS模式配置的CPLD EPM3128,可以用SW19选择配置模式,USB接口为J9; (4) 512K字节SRAM U18; (5) 8M字节(1M x 4 x 16) SDRAM U17; (6) 1M字节闪存(可升级至4M字节) U20; (7) SD卡接口 U19; (8) 4个按键KEY0KEY3; (9) 18个拨动开关SW0SW17; (10) 9个绿色LED灯LEDG0LEDG8; (11) 18个红色LED灯LEDR0LEDR17; (12) 50MHz晶振Y1和27MHz晶振Y3两个板上时钟源,也可通过J5使用外部时钟;,DE2 平台上提供的资源,(13) 24位CD品质音频的编解码器WM8371(U1),带有麦克风输入插座J1、线路输入插座J2和线路输出插座J3; (14) VGA DAC ADV7123 (U34,内含3个10位高速DAC)及VGA输出接口J13; (15) 支持NTSC和PAL制式的TV解码器ADV7181B(U33)及TV接口J12; (16) 10/100M以太网控制器DM9000AE(U35)及网络接口J4; (17) USB主从控制器ISP1362(U31)及接口(J10和J11); (18) RS-232收发器MAX232(U15)及9针连接器J6; (19) PS/2鼠标/键盘连接器J7; (20) IrDA收发器U14; (21) 带二极管保护的两个40脚扩展端口JP1和JP2; (22) 216字符的LCD模块U2; (23) 平台的供电通过插座J8接入直流9V供电,SW18为总电源开关; (24) Altera公司的第三方Terasic提供针对DE2平台的130万像素的CCD摄像头模块以及320240点阵的彩色LCD模块,可通过JP1和JP2接入。,硬件驱动安装,打开Windows窗口下的“控制面板”,用鼠标左键双击控制面板上的“系统”图标,在弹出的“系统特性”对话框中展开“硬件”页面,用鼠标单击该页面上的“硬件向导”按钮,弹出“添加/删除硬件向导”对话框。用鼠标左键单击该对话框的“下一步”按钮,弹出第二页,在该页面中选择“添加/删除设备故障”后单击“下一步”按钮,弹出第三页,在该页面中的“设备”栏中选择“添加新设备”项后单击“下一步”按钮,弹出第四页,在该页选择“否”。单击“下一步”按钮,到第五页,在该页面中“硬件类型”栏目中选择“声音、视频和游戏控制键”项后单击“下一步”按钮,弹出“添加/删除硬件向导”的页面。单击“从磁盘安装”,然后添加QuartusII的软件安装目录下的“quartusdriverswin2000”后单击“确定”,在“添加/删除硬件向导”选择“altera ByteBlaster”单击“下一步”,最后按“完成”按钮,完成Altera公司的硬件驱动程序的安装。硬件驱动程序安装完成后,计算机会自动提示需要重新启动,硬件驱动才能生效。,6.2 硬件描述语言基础,硬件描述语言,硬件描述语言HDL(Hardware Description Language)是一种对于数字电路和系统进行性能描述和模拟的语言,即利用高级语言来描述硬件电路的功能、信号连接关系以及各器件间的时序关系。 其设计理念是将硬件设计软件化,即采用软件的方式来描述硬件电路。硬件描述语言有很多种,但是最流行和通用的只有VHDL和Verilog HDL两种。,VHDL的特点,VHDL的英文全名是Very High Speed Integrated Circuit Hard Description Language。 其特点是: (1) 功能强大 (2) 可移植性 (3) 可操作性 (4) 灵活性 (5) 应用广泛性,描述方式:,行为描述方式:对设计实体的数学模型的描述,无须知道具体电路的结构。优点:只要清楚输入、输出的行为,不要关注设计功能的门级实现。抽象程度最高。,结构化描述方式:在多层次设计中,通过调用库中元件或已设计好的模块来完成设计功能。结构体中,只描述元件(或模块)和元件(或模块)之间的互连。优点:可利用已有资源,避免重复设计。,数据流描述方式:对信号到信号的数据流的路径形式进行描述。要求对设计实体的功能实现有一定的了解或对内部电路有清楚的认识。优点:便于逻辑综合;缺点:设计困难。,混合描述方式:上述三种描述方式的组合。,VHDL语言的开发流程,一个简单的VHDL工程设计流程主要包括一下几 个步骤: (1) 要求的功能模块划分; (2) VHDL的设计描述(设计输入); (3) 代码仿真模拟(前仿真); (4) 计综合、优化和布局布线; (5) 布局布线后的仿真模拟(后仿真); (6) 设计的实现(下载到目标器件)。,VHDL基本语法,VHDL程序基本结构进入 VHDL文字规则进入 VHDL基本数据对象进入 VHDL基本数据类型进入 VHDL运算符进入 VHDL顺序基本描述语句进入 VHDL并行基本描述语句进入,VHDL程序基本结构,1. 实体Entity 2. 结构体Architecture 3. 组件Component及其例化 4. 库LIBRARY 5. 程序包 6. 配置,VHDL程序基本结构,LIBRARY ieee; USE ; ENTITY 实体名 is PORT ( 端口说明 ); END 实体名; ARCHITECTURE 结构体名 OF 实体名 is SIGNAL ; COMPONENT ; BEGIN 并行语句 END 结构体名;,库的声明,实体,结构体,1. 实体 Entity,实体声明单元的常用语法结构为: ENTITY 实体名 IS GENERIC ( 类属声明 ); PORT ( 端口声明 ) ; END ENTITY 实体名 类属声明语法结构为: GENERIC (常数名称:数据类型 :设定值 ;常数名称:数据类型 :设定值 ); 端口声明语法结构为: PORT ( 端口名:端口方式 数据类型 端口名:端口方式 数据类型 );,2. 结构体 Architecture,结构体的语法结构: ARCHITECTURE 结构体名 OF 实体名 IS 块声明语句 BEGIN 并行处理语句 END ARCHITECTURE 结构体名;,3. 组件Component及其例化,组件声明语法结构如下: COMPONENT 组件名称 GENERIC(类属声明); PORT(端口声明); END COMPONENT; 组件例化语法结构如下: 实例名称:组件名称 GENERIC MAP( 类属名称= 表达式 ,类属名称= 表达式 ); PORT MAP( 端口名称= 表达式 端口名称= 表达式 );,4. 库 LIBRARY,库的语句结构: LIBRARY 库名 USE 库名. 程序包名. 项目名; USE 库名. 程序包名. All;,WORK库: 现行作业库,可用来临时保存以前编译过的元件和模块。,4. 库 LIBRARY,5. 程序包,程序包声明的语句结构: PACKAGE 程序包名 IS -程序包首 程序包首声明部分 END程序包名; PACKAGEBODY 包名 IS -程序包体 程序包体声明项部分以及包体 END包名;,6. 配 置,默认配置的语法结构如下 CONFIGURATION 配置名OF 实体名 IS FOR 选配结构体名 END FOR END 配置名 结构体的配置的格式: FOR : USE ENTITY .;,VHDL文字规则,1. 数值型文字 (1) 数字型文字的值有以下多种表达方式。 整数型文字,例如:567898,12E3(12000),74_399_7687(743997687,下划线作用是增加数的可读性,并不影响本身的数值) 实数型文字,例如:256.25,25.5E-3(0.0255),254_25.45 以数制基数表示的文字,例如:16#FE#(16进制数组),2#1010_1001#(2进制数组),8#372#(8进制数组) 物理量文字,例如:78s,199m,2.1 (2) 字符串型文字 字符使用单引号引起来的ASCII字符,可以是数值,也可以是符号和字母。字符串是有字符构成的一维数组,用双引号引起来,可以是文字的,也可以是数位的。,VHDL文字规则,(3) 下标 下标用于指示数组型变量和信号的某一个元素。用法为: 标识符(下标表达式) 其中:标识符就是数组型的变量或信号的名字,“下标表达式”所代表的必须是数组下标范围内的一个值。 (4) 注释 与其他计算机语言一样,为了VHDL语言程序有一定的可读性,要在程序中添加注释行,VHDL语言中的注释以字符“- - -”标识到本行末尾的文字。注释的内容不参加程序的编译。,VHDL文字规则,2.标识符 (1) 基本标识符的规则 有效字符:26 个大小写英文字母,包括:“a”“z”、“A”“Z”;数字“0”“9”;下划线“_”; 标识符中的英语字母不分大小写; 标识符必须以英文字母开头; 必须是单一下划线“_”,其前后都必须有英文字母或数字,并且不能以下划线“_”结尾。,VHDL文字规则,(2) 扩展标识符的规则 扩展标识符以反斜杠来界定,如74LS373、 Hello World都是合法的; 可以是任何字符,包括图形符号,如回车符、换行符、空格符等也都是合法的; 两个反斜杠之间允许有多个下划线相邻; 扩展标识符区分大小写; 扩展标识符中的一个反斜杠,要用两个反斜杠来代替。,VHDL基本数据对象,VHDL语言中,可以赋予一个质的对象就称为客体。客体主要包括以下 三种:变量(VARIABLE)、常量(CONSTANT)、信号(SIGNAL) (1) 常量 常量的定义形式如下: CONSTANT 常数名:数据类型:= 表达式 (2) 变量 变量的定义形式如下: VARIABLE 变量名:数据类型:约束条件:= 初始值 变量赋值语句的语法格式如下: 目标变量名:= 表达式 (3) 信号 信号的定义格式如下: SIGNAL 信号名:数据类型:约束条件:= 初始值 赋值语句表达式如下: 目标信号名 = 表达式,注意:变量和信号都必须先定义,后赋值。注意赋值符“=”和 “:”的差别。,VHDL基本数据类型,在对VHDL的客体进行定义时,都要指定其数 据类型。VHDL有多种标准的数据类型,并且允 许用户自定义数据类型。在VHDL语言语义约束 中,对类型的要求反映在赋值语句的目标与源的 一致,表达式中操作的一致,子类型中约束与类 型的一致等许多方面。 VHDL语言的数据类型根据产生的来源划分, 数据类型可以是由IEEE1706/93标准规定的标准 数据类型,也可以是用户自己定义的。,VHDL基本数据类型,(1) 标准数据类型 整数(INTEGER)。范围:-2147483547-2147483646; 实数(REAL)。范围:-1.0E38-1.0E38; 位(BIT)。只有两个取值:0和1,用来表示逻辑0和逻辑1; 位矢量(BIT_VECTOR)。位矢量是用由位类型数据元素构成的数组; 布尔量(BOOLEAN)。只有“真”和“假”两个状态,可以进行关系运算; 字符(CHARACTER)。字符量通常用单引号引起来,字符类型区分大小写; 字符串(STRING)。字符串是双引号引起来的一串字符:“hello”; 时间(TIME)。整数数值和单位之间应有空格; 错误等级(SEVERITY LEVEL)。用来表示系统的状态,共有4种取值:NOTE(注意)、WARNING(警告)、ERROR(错误)、FAILURE(失败); 大于等于零的整数(NATURAL)、正整数(POSITIVE)。,VHDL基本数据类型,(2) 可以由用户定义的数据类型有: 枚举(ENUMERATED)类型; 整数(INTEGER)类型; 实数(REAL)、浮点数(FLOATING)类型; 数组(ARRAY)类型; 存取(ACCESS)类型; 文件(FILE)类型; 记录(RECORDE)类型; 时间(TIME)类型(物理类型)。 用户定义的数据类型的一般格式: TYPE 数据类型名 ,数据类型名 数据类型定义; 不完整的数据类型格式: TYPE 数据类型名 ,数据类型名;,VHDL运算符,VHDL的运算操作符主要:算术运算符、 关系运算符、逻辑运算符及其他运算符。 每个运算符的特性包括:名称、运算类型、 操作数的数目和类型、结果的类型等方面。 不同类型的运算符之间也有一定的优先级 关系,优先级的运算规则与一般程序设计语 言相同。,VHDL运算符及优先级,VHDL基本描述语句,VHDL顺序基本描述语句,顺序语句是指完全按照程序中书写的顺序执行各语句,并且在结构层次中前面的语句执行结果会直接影响后面各语句的执行结果。 顺序描述语句只能出现在进程或子程序中,用来定义进程或子程序的算法。 顺序语句可以用来进行算术运算、逻辑运算、信号和变量的赋值、子程序调用等,还可以进行条件控制和迭代。 注意,这里的顺序是从仿真软件的运行和顺应VHDL语法的编程逻辑思路而言的,其相应的硬件逻辑工作方式未必如此。应该注意区分VHDL语言的软件行为与描述综合后的硬件行为的差异。,VHDL顺序语句主要包括: 变量赋值语句(Variable Evaluate) 信号赋值语句(Signal Evaluate) WAIT语句 IF 语句 CASE 语句 LOOP 语句 NEXT 语句 EXIT 语句 RETURN 语句 NULL 语句 过程调用语句(Procedure Call) 断言语句(Assert) REPORT 语句,VHDL顺序基本描述语句,(1) 赋值语句 赋值语句有信号赋值语句和变量赋值语句两种。 变量赋值语句和信号赋值语句的语法格式如下: 变量赋值目标:= 赋值源 信号赋值目标 = 赋值源 (2) 流程控制语句 流程控制语句通过条件控制开关决定是否执行一条或几 条语句,或者重复执行一条或几条语句,或者跳过一条 或几条语句。流程控制语句有IF语句、CASE语句、 LOOP语句、NEXT语句和EXIT语句等五种。,VHDL顺序基本描述语句,IF语句 IF 语句根据语句中所设置的条件执行指定的顺序语句 IF 语句有如下三种语法格式:,VHDL顺序基本描述语句,CASE语句 CASE 语句根据满足的条件直接选择多项顺序语句中的 一项执行。 CASE 语句的语法结构如下: CASE 控制表达式IS When 条件表达式1 = 顺序语句处理语句1; When 条件表达式2 = 顺序语句处理语句2; END CASE,VHDL顺序基本描述语句,LOOP 语句 LOOP 语句就是循环语句,表示循环执行一组顺序语句。有三种不同的LOOP 语句。 第一种基本LOOP 语句的语法格式如下: 标号: LOOP 顺序语句处理语句; END LOOP 标号; 第二种FOR_LOOP 语句语法格式如下: 标号: FOR 循环变量 IN 循环次数范围 LOOP 顺序语句处理语句; ENDLOOP 标号; 第三种WHILE_LOOP 语句语法格式如下: 标号: WHILE 循环控制条件 LOOP 顺序语句处理语句; END LOOP 标号;,VHDL顺序基本描述语句,NEXT语句 NEXT语句用于LOOP语句内,表示终止当前循环。 NEXT语句的语法格式如下: NEXT 标号 WHEN 条件表达式; EXIT语句 EXIT语句是LOOP循环终止语句。 语句的语法格式如下: EXIT 标号 WHEN 条件表达式;,VHDL并行基本描述语句,并行语句用于表示算法模块间的连接关系,相互之间无次序关系,它们是并行执行的,与书写顺序无关。 并行描述语句在结构体中的语法格式如下: ARCHITECTURE 结构体名OF 实体名IS 说明语句 BEGIN 并行语句 END ARCHITECTURE 结构体名;,并行语句主要有以下几种: PROCESS -进程语句 BLOCK -块语句 CONCURRENT SIGNAL ASSIGNMENT -并行信号代入语句 CONDITIONAL SIGNAL ASSIGNMENT -条件信号代入语句 SELECTIVE SIGNAL ASSIGNMENT -选择信号代入语句 CONCURRENT PROCEDURE CALL -并行过程调用语句 ASSERT -并行断言语句 GENERIC -参数传递语句 COMPONENT_INSTANT -元件例化语句 GENERATE -生成语句,VHDL并行基本描述语句,进程语句 进程与其他部分的通信,是通过从进程外的信号或端口中读取或者写入值来完成。 进程语句的语法格式如下: 进程名称: PROCESS 敏感信号量1,信号量2, 变量说明语句 BEGIN 顺序执行语句 END PROCESS 进程名称; 特点: 1.进程语句的内部是顺序语句,而进程语句本身是一种并行语句; 2.由PROCESS后面的敏感信号表或WAIT语句触发; 3.各进程间通过信号进行通信。 注意:敏感信号表与WAIT语句不共存。,VH

温馨提示

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

评论

0/150

提交评论