免费预览已结束,剩余41页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目的 掌握VHDL程序的基本结构掌握VHDL程序的设计特点 主要内容 DFF的VHDL描述全加器的VHDL描述 libraryieee useieee std logic 1164 all entitydff1isport clk d instd logic q outstd logic end architecturebhvofdff1issignalq1 std logic beginprocess clk beginif clk eventandclk 1 thenq1 d endif endprocess q q1 end STD LOGIC标准逻辑位数据类型STD LOGIC比BIT包含的内容丰富和完整BIT 0 1 STD LOGIC 数据类型 通常在设计中通常使用std logic类型这里我们借D触发器对这类数据类型进行一个描述 并非时序电路都要用这类数据类型 U Uninitialized 未初始化的 X ForcingUnknown 强未知的 0 Forcing0 强0 1 Forcing1 强1 Z HighImpedance 高阻态 W WeakUnknown 弱未知的 L Weak0 弱0 H Weak1 弱1 Don tcare 忽略 返回 库 程序包std logic std logic vector 定义在std logic 1164 all程序包中 而此包由IEEE定义 所以 使用到这两种数据类型时 需包含libraryieee useieee std logic 1164 all 返回 SIGNAL信号名 数据类型 初始值 区别 signal 描述实体内部节点 不定义输入输出方向 在结构体中作为一个数据的暂存器 进行赋值 端口 描述实体与外界的接口 数据对象 返回 Event信号属性函数s Event 如果在当前一个相当小的时间间隔内 事件发生了 则函数将返回 TURE 否则返回 FLASE 上升沿 clock eventandclock 1 下降沿 clock eventandclock 0 上升沿 rising edge clock 下降沿 falling edge clock 上升沿检测表达方式和信号属性 使用函数要注意打开相关程序包 时钟的描述方法 上升沿 CP EVENTANDCP 1 下升沿 CP EVENTANDCP 0 Clk 0 Clk 0 Clk 1 Clk 1 Clock EVENT Clock EVENT Clock EVENT Clock EVENT为信号的属性函数 有事件发生为 真 否则为 假 architecturebhvofdff2isbeginprocess clk beginif clk eventandclk 1 thenq d endif endprocess end 时序电路由于这条语句的存在 不完整条件语句与时序电路if clk eventandclk 1 thenq1 d endif 此IF语句未利用ELSE指明IF语句不满足条件时 作何操作 不完整的条件语句 引入时序元件保存q1的原值 不完整语句 综合器如何处理 上升沿D触发器描述 方法一 使用信号属性函数 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYD regISPORT D CP INSTD LOGIC Q OUTSTD LOGIC ENDD reg ARCHITECTUREtestOFD regISSIGNALQ1 STD LOGICBEGINPROCESS CP BEGINIF CP EVENTANDCP 1 THENQ1 D ENDIF ENDPROCESS Q Q1 ENDtest 方法二 使用WAIT语句 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYD regISPORT D CP INSTD LOGIC Q OUTSTD LOGIC ENDD reg ARCHITECTUREtestOFD regISBEGINPROCESSBEGINWAITUNTILCP 1 Q D ENDPROCESS ENDtest 上升沿D触发器描述 等效对时钟信号CP的一个跳变判断 方法三 使用上升沿检测函数 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYD regISPORT D CP INSTD LOGIC Q OUTSTD LOGIC ENDD reg ARCHITECTUREtestOFD regISBEGINPROCESS cp BEGINIF rising edge cp THENQ D ENDIF ENDPROCESS ENDtest 上升沿D触发器描述 使用函数要注意打开相关程序包 方法四 使用进程的启动特性 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYD regISPORT D CP INSTD LOGIC Q OUTSTD LOGIC ENDD reg ARCHITECTUREtestOFD regISBEGINPROCESS CP BEGINIFCP 1 THENQ D ENDIF ENDPROCESS ENDtest 上升沿D触发器描述 使用进程对敏感信号的检测 来实现对时钟信号的边沿检测 由波形可见 Q的变化发生在clk的上升沿时刻D的取值 clk 0时 Q值不变 上升沿D触发器描述 髙电平D触发器描述 方法 使用进程的启动特性 LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL ENTITYD regISPORT D CP INSTD LOGIC Q OUTSTD LOGIC ENDD reg ARCHITECTUREtestOFD regISBEGINPROCESS CP D BEGINIFCP 1 THENQ D ENDIF ENDPROCESS ENDtest 注意进程的敏感信号 由图可见 当CLK 1时 Q随D变化而变化 clk 0时 Q保持不变 髙电平D触发器描述 u v w 全加器设计含有层次结构的VHDL程序例化语句的学习case语句的认识 以下是半加器的描述LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL 以下是半加器的实体描述ENTITYH adderISPORT in a in b INSTD LOGIC out s out co OUTSTD LOGIC END 以下是半加器结构体描述ARCHITECTUREoneOFH adderISBEGINout s in aXORin b out co in aANDin b ENDone architectureoneofh adderissignalP std logic vector 1downto0 beginPsosososonull endcase endprocess end 以下是半加器的结构体描述CASE语句 当a和b分别为 0 和 0 时 即P为 00 满足条件后执行语句 判断P的值 相当于写出真值表 以下是或门描述LIBRARYIEEE USEIEEE STD LOGIC 1164 ALL 以下是或门实体描述ENTITYOr 2ISPORT x y INSTD LOGIC z OUTSTD LOGIC ENDOr 2 以下是或门结构体描述ARCHITECTUREoneOFOr 2ISBEGINZ 1 WHEN x 0 ANDy 1 ELSE 1 WHEN x 1 ANDy 0 ELSE 1 WHEN x 1 ANDy 1 ELSE 0 ENDbehavioral 以下是或门另一种结构体描述architectureoneofor 2isbeginc aorb end 以下是一位全加器结构描述的顶层设计ENTITYfull adderISPORT a b ci INSTD LOGIC s co OUTSTD LOGIC ENDfull adder ARCHITECTUREoneOFfull adderISCOMPONENTH adder 半加器部件声明PORT in a in b INSTD LOGIC out s out co OUTSTD LOGIC ENDCOMPONENT COMPONENTOR 2 二输入或门部件声明PORT x y INSTD LOGIC z OUTSTD LOGIC ENDCOMPONENT SIGNALu v w STD LOGIC 定义内部三条连线BEGINU1 H adderPORTMAP in a a in b b out s v out co u 端口映射U2 H adderPORTMAP in a v in b ci out s s out co w U3 Or 2PORTMAP x u y w z co END 元件例化语句 元件例化语句 即将从前设计的实体当作本设计的一个元件 然后用VHDL语句将各元件之间的连接关系描述出来 VHDL设计实体 来自FPGA元件库中的元件 Verilog设计的实体 IP核 FPGA中的嵌入式硬IP核等 COMPONENT元件名IS GENERIC 类属表 PORT 端口名表 ENDCOMPONENT元件名 例化名 元件名PORTMAP 元件端口名 连接端口名 元件端口名 连接端口名其中 元件端口名是元件定义语句中的端口名表中已定义好的 连接端口名是当前系统与准备接入的元件对应端口相连的通信端口 端口名和当前系统的连接端口名的接口表达名字关联 端口名和关联符号 必须存在位置关联 只需列出连接端口 U1 H adderPORTMAP in a a in b b out s v out co u 端口映射 architectureabcofshifteriscomponentdffport d clk inbit q outbit endcomponent signald bit vector 0to4 begind 0 d 2 clk clk q d 3 u1 dffportmap d d 3 clk clk q d 4 dout d 4 endabc 元件例化 映射 语句的位置 在结构体的BEGIN和END之间 元件定义语句的位置 结构体声明部分 名字关联方式 返回 CASE语句根据满足的条件直接选择多项顺序语句中的一项执行 CASE表达式ISWHEN值1 语句A WHEN值2 语句B WHENOTHERS 语句C ENDCASE 这里的 不是关系运算符 仅描述 值和对应执行语句的对应关系 相当于THEN的作用 返回 std logic标准位类型std logic vector标准一维数组使用std logic vector表示多通道端口或者总线 使用std logic vector时要注明其数组宽度 如 B outstd logic vector 7downto0 downto表示最左边为最高位 位数向右依次递减 如 A outstd logic vector 1to4 to表示最左边为最低位 位数向右递增 前例中定义内部信号P为两个元素的std logic vector 并置操作符 将操作数或数组合并起来形成新的数组 返回 P a 表示P为a和b组成的数组当a b分别为 0 0 P为 00 0 1 P为 01 1 0 p为 10 1 1 p为 11 一种计数器的设计 entitycnt4isport clk inbit Q bufferintegerrange15downto0 end architecturebhvofcnt4isbeginprocess clk beginifclk eventandclk 1 thenQ Q 1 endif endprocess endbhv 数据对象 Buffer 在 的左右两边都出现Q 表明Q应具有输入和输出两种端口模式 同时它的输入特性应是反馈方式 即传输符号 的右边Q应该来自左边的Q的反馈 BUFFER与INTOUT的区别在于buffer的输入来自反馈 所以这里将Q定义为buffer类型最为合适 返回 数据类型 integer 对应 的操作数必须定义为整数类型 integer 表达式 Q Q 1 式中 Q 和 1 都是整数 满足 左右两边都是整数 类型相同 左右两边都是整数的条件 VHDL综合器要求必须使用 RANGE 句子为所定义的数限定范围 再根据所定义的范围来决定表示此信号或变量的二进制数的位数 Q bufferintegerranger15downto0 定义了Q的取值范围是0 15 可以用四位二进制数表示 整数的表达式不加引号 如 1 0 25 而逻辑位的数据要加引号 如 1 0 0 1111 自然数 natural 0 正整数 正整数 positive 比自然数少个0 返回 另一种计数器表达方式 libraryieee useieee std logic 1164 all useieee std logic unsigned all entitycnt4isport clk instd logic Q outstd logic vector 3downto0 end architecturebhvofcnt4issignalQ1 std logic vertor 3downto0 beginprocess clk beginifclk eventandclk 1 thenQ1 Q1 1 endif endprocess Q Q1 endbhv ieee std logic unsigned all 表达式 Q1 Q1 1 加号左右两个数据类型不相同 Q1 逻辑矢量 1 整数 ieee库中std logic unsigned程序包中预先定义的操作符允许不同数据类型的操作数之间用运算符进行运算 返回 Q端口模式是 out 由于Q没有输入的端口模式 因此Q不能如前例那样直接用表达式 Q Q 1 在计数器内部定义一个信号signal 无需定义方向 所以Q1的方向是不受方向限制的 可以用Q1 Q1 1 完成累加任务 一般计数器的设计方法 异步复位同步时钟使能变量赋值省略赋值操作符 architecturebehofcnt10isbeginprocess clk rst en variableCQI std logic vector 3downto0 beginifrst 1 thenCQI OTHERS 0 elseifclk eventandclk 1 thenifen 1 thenifCQI 0 endif endif ensif ifCQI 9thencout 1 elsecout 0 endif CQ cqi endprocess endbeh 不完整条件语句 需要检测
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年农业面源污染治理与化肥农药减量培训
- 2026年室外广场与台阶清扫保洁标准
- 热点三 张雪机车一战封神(练习)-高考语文高频热点命题练习卷
- 线上智力开发资源共享合作协议2026
- 2026年茶叶店加盟品牌信誉风险与品质把控
- 2026年老年膳食营养与餐饮服务市场需求
- 2026年超声科超声引导下置管引流技术操作规范
- 风险接受与数据安全保密合同
- 2026年锅炉房安全操作规程与管理规定
- 去中心化2026年去中心化跨境贸易协议
- 医疗AI在肿瘤诊断中的应用
- 2025-2026学年高三统编版历史一轮复习历史备考策略+课件
- 园林绿化养护标准 DG-TJ08-19-2023
- 水文地质调查员风险评估竞赛考核试卷含答案
- 仓储管理信息系统操作流程及规范
- 水利工程施工环境保护监理规范
- 胸部肌肉拉伸课件
- 垃圾中转站安全操作培训课件
- 公司破产股东债务协议书
- IPC7525B2011(CN)Stencildesignguidelines模板设计指南(中文版)
- 劳动争议调解员培训课件
评论
0/150
提交评论