




已阅读5页,还剩28页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第5章vhdl语言构造体的描述方式 行为描述方式数据流描述方式 寄存器传输描述rtl 结构描述方式混合描述方式 可进行逻辑综合 不能进行逻辑综合 5 1行为描述方式 所谓行为描述 就是对设计实体的数学模型的描述 其抽象程度远远高于数据流描述方式和结构描述方式 行为描述类似于高级编程语言 当要描述一个设计实体的行为时 无须知道具体电路的结构 只需要用一组状态来描述即可 行为描述的优点在于只需要描述清楚输入与输出的行为 而不需要花费更多的精力关注设计功能的门级实现 描述数字系统的行为 主要用于仿真和系统工作原理的研究 代入语句格式 信号量 敏感信号量表达式 例如 z anor bnandc 该例中有三个敏感量 无论哪一个发生变化都可以使z变化 具有时间延迟的代入语句 a bafter10ns表示当b发生变化10ns后a才变化 a bafter5ns 语法错误 例如 entityand2isport a b inbit c outbit endand2 architectureand2 behaveofand2isbeginc aandb endand2 behave c aandb 被替换为c aandbafter5ns 延时语句vhdl中有两种延时语句 惯性延时和传输延时 惯性延时vhdl中惯性延时是缺省的 因为逻辑硬件电路总是有时间延迟的 若延迟时间是20ns 那么输入信号时间若小于20ns 则输出信号将不跟随输入信号的变化 有时为使延迟时间更逼真实际电路 就专门设置惯性时间 b aafter10ns 传输延时传输延时常代表总线 连接线的延迟时间 该时间必须专门说明 该传输延时只对信号起纯延时作用 例 b transportaafter20ns generic语句generic语句常用于不同层次之间的信息传递 该语句说设计的数据除整数类型以外 如涉及其他类型的数据则不能进行逻辑综合 该语句主要用于行为描述方式 使用generic语句易于使器件模块化和通用化 例如书中p54页例题4 4 4 5 数据流描述方式数据流描述方式是一种可以进行逻辑综合的描述方式 由于要进行逻辑综合所以对使用的语句有一定的限制 vhdl中的每一个命令和语句都对逻辑综合能力进行了定义 要进行逻辑综合的设计实体就要使用有逻辑综合能力的命令和语句 数据流描述是对从信号到信号的数据流的路径形式进行描述 因此很容易进行逻辑综合 由于要对信号的流动路径进行描述 因此要求设计人员对设计实体的功能实现要有一定的了解 有时候还需要对内部电路有清楚的认识 具有一定的难度 例 四选一电路libraryieee useieee std logic 1164 all useieee std logic unsigned all entitymux42isport input instd logic vector 3downto0 sel instd logic vector 1downto0 y outstd logic endmux42 architectureappofmux42isbeginy input 0 whensel 0elseinput 1 whensel 1elseinput 2 whensel 2elseinput 3 endapp 使用数据流描述方式应该注意的问题 1 x 状态的传递问题有时 x 状态会逐级传递 造成系统的输出为不确定或者错误 所以要在设计中考虑 x 状态对输出的影响 process sel beginif sel 1 theny 0 elsey 1 endif endprocess process sel beginif sel 1 theny 0 elsey 1 endif endprocess 如下更改process sel beginif sel 1 theny 0 elseif sel 0 theny 1 elsey x endifendprocess 2 一些限制 禁止在一个进程中使用两个寄存器 在进程中 对变量要先读后写 在if语句描述寄存器时 禁止else项 在寄存器描述中 禁止将变量代入信号 关连性强的信号应该放在一个进程中 例1 process clk1 clk2 beginifclk1 eventandclk1 1 theny m endif ifclk2 eventandclk2 1 then 错误x m endif endprocess 例2 process clk reset variablea std logic beginifreset 1 thena 0 outsignal 0 elsifrising edge clk thenoutsignal a 先读a insignal 后写endif endprocess 因为变量值是立即获得的 所以如果先写后读就会产生长的组合逻辑和锁存器 或寄存器 因此在编写代码过程中 对变量要先读后写 对于rtl描述方式中的if语句在其描述寄存器功能时 禁止采用else项 因为这种赋值方式相当于检测如果没有时钟信号时 则赋新值 而实际上不可能有这样的硬件电路与之对应 如例3所示 而如例4所示的else项在rtl描述方式中是可以使用的 例3 process clk beginifclk eventandclk 1 theny m else 禁止使用y n endif endprocess 例4 process clk beginifclk eventandclk 1 thenifena 1 theny m else 可以使用y n endif endif endprocess 结构描述方式 结构描述方式就是在多层次的设计中 通过调用库中的元件或是已设计好的模块来完成设计实体功能的描述 在结构体中 描述只表示元件 或模块 和元件 或模块 之间的互连 就像网表一样 当引用库中不存在的元件时 必须首先进行元件的创建 然后将其放在工作库中 通过调用工作库来引用元件 在引用元件时 要先在结构体说明部分进行元件的说明 然后在使用元件进行元件例化 注重调用已有的元件 元件或门级电路之间的连线是结构描述的特点 结构描述可以提高设计效率 元件声明语句 元件声明语句用于调用已生成的元件 这些元件可能在库中 也可能是预先编写的元件实体描述 元件语句的格式 component元件名generic说明 参数说明port说明 端口说明endcomponent 元件语句可以在architecture package和block的说明部分 元件调用 格式 标号名 元件名portmap 信号 两层信号之间的关系为映射关系 该映射有两种 位置映射例 有一元件的端口说明为 port a b inbit c outbit 调用该元件时 u2 元件名portmap n1 n2 m 这里n1对应a n2对应b m对应c 名称映射例 该映射就是将库中已有模块的端口名称 赋予设计中的信号名 u2 元件名portmap a n1 b n2 c m asic级结构描述插板级结构描述系统级的结构描述 构造体结构描述的基本框架 全加器 设有两个四位二进制数相加1001被加数a0101加数b1110和s在相加过程中 两数相加有时要产生进位 这个进位要送到高位的和中去 所以一个全加器要求三个变量 被加数ai和加数bi以及低位向本位的进位ci 1 的和si和向高位的进位ci 全加器真值表 一位全加器的逻辑示意图 a b cin s co 采用行为描述方法设计一位全加器 libraryieee useieee std logic 1164 all entityfull adderisport a b cin instd logic co s outstd logic endfull adder architecturebehavoffull adderisbeginprocess a b cin variableai bi ci si integer beginif a 0 thenai 0 elseai 1 endif if b 0 thenbi 0 elsebi 1 endif if cin 0 thenci 0 elseci 1 endif si ai bi ci casesiiswhen0 s 0 co 0 when1 s 1 co 0 when2 s 0 co 1 when3 s 1 co 1 whenothers s x co 0 endcase endprocess endbehav 错误 应为 错误 应在32位之内 一位全加器实现的逻辑电路图 采用数据流描述方法设计一位全加器 libraryieee useieee std logic 1164 all entityfull adderisport a b cin instd logic co s outstd logic endfull adder architecturedataflowoffull adderissignaltemp1 temp2 std logic begintemp1 axorb temp2 temp1andcin s temp1xorcin co temp2or aandb enddataflow 采用半加器设计全加器 1位半加器 1位全加器 h adderacobso h adderacobso h adderacobso f adderaincoutbinsumcin ain bin ain acb u1 u2 u3 sum cout d e f libraryieee useieee std logic 1164 all entityor2isport a b instd logic c outstd logic endor2 architecturefulofor2isbeginc aorb endfu1 或门设计 libraryieee useieee std logic 1164 all entityh adderisport a b instd logic co so outstd logic endh adder architecturefh1ofh adderisbeginso aand anandb co not anandb endfh1 半加器设计 libraryieee useieee std logic 1164 all entityf adderisport ain bin cin instd logic cout sum outstd logic endf adder architecturefd1off adderiscomponenth adderport a b in
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 铝镁粉球磨工中秋节后复工安全考核试卷含答案
- 城市轨道交通服务员中秋节后复工安全考核试卷含答案
- 凹版制版员国庆节后复工安全考核试卷含答案
- 混合气潜水员中秋节后复工安全考核试卷含答案
- 园林修剪工国庆节后复工安全考核试卷含答案
- 英语学习suggest短语用法详解
- 甲壳类养殖工节假日前安全考核试卷含答案
- 改性合成树脂装置操作工国庆节后复工安全考核试卷含答案
- 网版印刷员节假日前安全考核试卷含答案
- 关于实验教学总结模板合集六篇
- 济宁市“技能状元”职业技能竞赛-全市煤化工行业技能大赛化学检验工参考题库
- 邢台城市介绍课件
- 怎样写好硬笔字-硬笔书法教程课件 4-1 硬笔隶书笔画技法
- 旅行社旅游突发公共事件应急预案
- 统编版中考语文一轮复习:义务教育语文课程常用字表(3500字注音版)(2022版课标)
- 建筑工程技术专业《房屋建筑学》课程标准
- 人教版部编版统编版一年级语文上册汉语拼音5《gkh》课件
- DL-T1083-2019火力发电厂分散控制系统技术条件
- 《2024年北京市医疗服务收费目录》
- 意外险医疗险重疾险
- 便利店陈列培训
评论
0/150
提交评论