EDA技术-项目3-数据选择器电路设计.ppt

上传人:za****8 文档编号:7179535 上传时间:2020-03-15 格式:PPT 页数:53 大小:487.52KB
返回 下载 相关 举报
EDA技术-项目3-数据选择器电路设计.ppt_第1页
第1页 / 共53页
EDA技术-项目3-数据选择器电路设计.ppt_第2页
第2页 / 共53页
EDA技术-项目3-数据选择器电路设计.ppt_第3页
第3页 / 共53页
点击查看更多>>
资源描述
1 学习子领域2 数字电路的EDA设计 项目 学习情境 3 数据选择器电路设计 2 教学内容 数据选择器电路VHDL程序设计 1 库使用与实体描述部分 目的 能正确分析任务要求 拟制数据选择器电路的引脚功能图 能使用VHDL基本语句设计数据选择器电路程序中的库使用与实体部分 3 项目工作要求 请根据要求在EDA实验箱上设计四选一数据选择器电路 要求 使用EDA实验箱上开关设置模块的K4 K3 K2 K1开关作为四选一数据选择器的4个输入 K8 K7开关作为四选一数据选择器的两个选择控制端 实验箱上输出指示模块中的OUT1红色LED 发光二极管 作为四选一数据选择器的输出 进行功能仿真 一 项目描述 4 二 项目资讯 1 基于FPGA和EDA软件的数字电路设计方法与工作流程 2 数据选择器的工作原理 3 使用VHDL设计数据选择器的方法 4 VHDL相关语法知识 5 数据选择器工作原理 数据选择器是从多路输入数据中选择一路 送到数据总线上的电路 它的作用类似于一个单刀多掷开关 其示意图 如下图所示 6 4选1数据选择器逻辑图 7 数据选择器的引脚功能图 六选一的呢 四选一的呢 二选一 MUX21 a s b y 8 1 VHDL程序的基本结构 2 VHDL程序的库使用与实体部分描述方法 3 VHDL程序的结构体部分描述方法 4 when else并行语句与with select并行语句以及在数据选择器电路中的应用 VHDL相关语法 9 基本结构包括 库 Library 程序包 Package 实体 Entity 结构体 Architecture 配置 Configuration 一 VHDL程序基本结构 10 库 程序包 实体 Entity 结构体 Architecture 进程或其它并行结构 配置 Configuration VHDL程序基本结构 11 程序包 在VHDL中 程序包主要用来存放各个设计都能共享的信号说明 常量定义 数据类型 子程序说明 属性说明和元件说明等部分 如果需要使用程序包中的某些说明和定义 设计人员只需要使用USE子句来进行一下说明就可以了 目的 方便公共信息 资源的访问和共享 库 多个程序包构成库 1 程序包 库 12 库的使用语法 程序包的使用有两种常用格式 例 libraryieee useieee std logic 1164 all useieee std logic unsigned conv integer library库名 use库名 程序包名 项目名 use库名 程序包名 All 13 程序包说明的内容 常量说明 VHDL数据类型说明 元件说明 子程序说明 程序包的结构包括 程序包说明 包首 程序包主体 包体 14 包声明项可由以下语句组成 use语句 用来包括其它程序包 类型说明 子类型说明 常量说明 信号说明 子程序说明 元件说明 package程序包名is 包说明项 end程序包名 1 程序包说明 包首 语法 15 例 程序包说明 16 包体说明项可含 use语句 子程序说明 子程序主体 类型说明 子类型说明 常量说明 packagebody程序包名is 包体说明项 end程序包名 2 程序包包体 程序包的内容 子程序的实现算法 包体语法 17 程序包首与程序包体的关系 程序包体并非必须 只有在程序包中要说明子程序时 程序包体才是必须的 程序包首可以独立定义和使用 如下 18 packagesevenissubtypesegmentsisbit vector 0to6 typebcdisrange0to9 endseven librarywork usework seven all entitydecoderisport input inbcd drive outsegments enddecoder architectureartofdecoderisbegin 19 withinputselectdrive B 1111110 when0 B 0110000 when1 B 1101101 when2 B 1111001 when3 B 0110011 when4 B 1011011 when5 B 1011111 when6 B 1110000 when7 B 1111111 when8 B 1111011 when9 B 0000000 whenothers endarchitectureart a b c d e f g 20 2 常用程序包 STANDARD程序包 在所有VHDL程序的开头隐含 不需写出 STD LOGIC 1164程序包STD LOGIC UNSIGNED程序包STD LOGIC SIGNED程序包 21 3 库的种类VHDL库可分为5种 1 IEEE库定义了四个常用的程序包 std logic 1164 std logic arith std logic signed std logic unsigned 22 TypeSTD LOGIC 9logicvaluesystem U X 0 1 Z W L H W L H weakvalues NotsupportedbySynthesis X not x usedforunknown Z not z usedfortri state Don tCare 23 2 STD库 默认库 库中程序包为 standard 定义最基本的数据类型 Bit bit vector Boolean Integer Real andTime注 TypeBit2logicvaluesystem 0 1 3 面向ASIC的库4 WORK库 默认库 5 用户定义库 24 4 库及程序包的使用库及程序包的说明总是放在实体单元前面 默认库及程序包可不作说明 用关健字library说明要使用的库 用关健字use说明要使用的库中的程序包 库及程序包的作用范围 仅限于所说明的设计实体 每一个设计实体都必须有自已完整的库及程序包说明语句 25 2 实体实体 定义系统的输入输出端口语法 ENTITYISGenericDeclarationsPortDeclarationsEND 1076 1987version ENDENTITY 1076 1993version 26 1 类属说明类属说明 确定实体或组件中定义的局部常数 模块化设计时多用于不同层次模块之间信息的传递 可从外部改变内部电路结构和规模 类属说明必须放在端口说明之前 Generic 常数名称 类型 缺省值 常数名称 类型 缺省值 27 类属常用于定义 实体端口的大小 设计实体的物理特性 总线宽度 元件例化的数量等 例 entitymckisgeneric width integer 16 port add bus outstd logic vector width 1downto0 28 例 2输入与门的实体描述entityand2isgeneric risewidth time 1ns fallwidth time 1ns port a1 instd logic a0 instd logic z0 outstd loigc endentityand2 注 数据类型time用于仿真模块的设计 综合器仅支持数据类型为整数的类属值 29 其中 端口模式 in 输入型 此端口为只读型 out 输出型 只能在实体内部对其赋值 inout 输入输出型 既可读也可赋值 buffer 缓冲型 与out相似 但可读 Port 端口名称 端口名称 端口模式数据类型 端口名称 端口名称 端口模式数据类型 2 端口声明 端口声明 确定输入 输出端口的数目和类型 30 out和buffer的区别 inout和buffer的区别 31 INOUT为输入输出双向端口 即从端口内部看 可以对端口进行赋值 即输出数据 也可以从此端口读入数据 即输入 BUFFER为缓冲端口 功能与INOUT类似 区别在于当需要读入数据时 只允许内部回读内部产生的输出信号 即反馈 举个例子 设计一个计数器的时候可以将输出的计数信号定义为BUFFER 这样回读输出信号可以做下一计数值的初始值 buffer顾名思义就是缓存 它是作为输出使用的 因为在模块内 是不可以将输出赋值给其他信号的 例如定义b outstd logic 我们现在要将b赋值给信号a 就会出错 但是如果b的类型为buffer就可以执行操作 32 指端口上流动的数据的表达格式 为预先定义好的数据类型 常用的数据类型有 bit bit vector integer std logic std logic vector等 例 entitynand2isentitym81isport port a b inbit a inbit vector 7downto0 z outbitsel inbit vector 2downto0 b outbit endentitynand2 endentitym81 3 数据类型 33 VHDL是一种强数据类型语言 要求设计实体中的每一个常数 信号 变量 函数以及设定的各种参量都必须具有确定的数据类型 并且相同数据类型的量才能互相传递和作用 34 又分为 预定义数据类型 用户自定义数据类型 1 VHDL的预定义数据类型1 布尔量 boolean 布尔量具有两种状态 false和true常用于逻辑函数 如相等 比较 等中作逻辑比较 如 bit值转化成boolean值 boolean var bit var 1 35 2 位 bit bit表示一位的信号值 放在单引号中 如 0 或 1 3 位矢量 bit vector bit vector是用双引号括起来的一组位数据 如 001100 X 00B10B 4 字符 character 用单引号将字符括起来 variablecharacter var character Character var A 36 5 整数 integer integer表示所有正的和负的整数 硬件实现时 利用32位的位矢量来表示 可实现的整数范围为 231 1 to 231 1 VHDL综合器要求对具体的整数作出范围限定 否则无法综合成硬件电路 如 signals integerrange0to15 信号s的取值范围是0 15 可用4位二进制数表示 因此s将被综合成由四条信号线构成的信号 37 6 自然数 natural 和正整数 positive natural是integer的子类型 表示非负整数 positive是integer的子类型 表示正整数 定义如下 subtypenaturalisintegerrange0tointeger high subtypepositiveisintegerrange1tointeger high 38 7 实数 REAL 或称浮点数取值范围 1 0E38 1 0E38实数类型仅能用于VHDL仿真器 一般综合器不支持 8 字符串 string string是character类型的一个非限定数组 用双引号将一串字符括起来 如 variablestring var string 1to7 string var Rosebud 39 9 时间 TIME 由整数和物理单位组成如 55ms 20ns10 错误等级 SEVERITY LEVEL 仿真中用来指示系统的工作状态 共有四种 NOTE 注意 WARNING 警告 ERROR 出错 FAILURE 失败 40 2 IEEE预定义标准逻辑位与矢量1 std logic类型由ieee库中的std logic 1164程序包定义 为九值逻辑系统 如下 U X 0 1 Z W L H U 未初始化的 X 强未知的 0 强0 1 强1 Z 高阻态 W 弱未知的 L 弱0 H 弱1 忽略 41 由std logic类型代替bit类型可以完成电子系统的精确模拟 并可实现常见的三态总线电路 2 std logic vector类型由std logic构成的数组 定义如下 typestd logic vectorisarray naturalrange ofstd logic 赋值的原则 相同位宽 相同数据类型 42 3 用户自定义类型用户自定义类型是VHDL语言的一大特色 可由用户定义的数据类型有 枚举类型 整数和实数类型 数组类型 记录类型 子类型 43 用类型定义语句TYPE数据类型 TYPE语句格式 例 typeweekis sun mon tue wed thu fri sat type数据类型名is数据类型定义 of基本数据类型 44 1 枚举类型枚举该类型的所有可能的值 格式 如 typestd logicis U X 0 1 Z W L H 如 typecoloris blue green yellow red typemy logicis 0 1 U Z variablehue color signalsig my logic hue blue sig Z type类型名称is 枚举文字 枚举文字 45 枚举类型的编码 综合器自动实现枚举类型元素的编码 一般将第一个枚举量 最左边 编码为0 以后的依次加1 编码用位矢量表示 位矢量的长度将取所需表达的所有枚举元素的最小值 如 typecoloris blue green yellow red 编码为 blue 00 green 01 yellow 10 red 11 46 4 数据类型转换VHDL是一种强类型语言 不同类型的数据对象必须经过类型转换 才能相互操作 1 类型转换函数方式通过调用类型转换函数 使相互操作的数据对象的类型一致 从而完成相互操作 47 2 直接类型转换方式对相互间非常关联的数据类型 如整型 浮点型 可进行直接类型转换 格式 数据类型标识符 表达式 如 variablea b real variablec d integer a real c d integer b 48 作用 定义系统 或模块 的行为 元件及内部的连接关系 即描述其逻辑功能 两个组成部分 对数据类型 常数 信号 子程序 元件等元素的说明部分 以各种不同的描述风格描述的系统的逻辑功能实现的部分 常用的描述风格有 行为描述 数据流描述 结构化描述 3 结构体 49 4 配置 设计实体 结构体1 结构体2 结构体3 结构体n 一个设计实体的多种实现方式 配置 从某个实体的多种结构体描述方式中选择特定的一个 50 configuration配置名of实体名isfor选配结构体名endfor end配置名 简单配置的语法 51 architectureart2ofnandisbeginc 1 when a 0 and b 0 else 1 when a 0 and b 1 else 1 when a 1 and b 0 else 0 when a 1 and b 1 else 0 endarchitectureart2 52 configurationfirstofnandisforart1 endfor endfirst configurationsecondofnandisforart2endfor endsecond 53 libraryieee useieee std logic 1164 all entitynandisport a instd logic b instd logic c outstd logic endentitynand architectureart1ofnandisbeginc not aandb endarchitectureart1 例 一个与非门不同实现方式的配置如下
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!