第6章 Verilog HDL设计进阶习题.ppt_第1页
第6章 Verilog HDL设计进阶习题.ppt_第2页
第6章 Verilog HDL设计进阶习题.ppt_第3页
第6章 Verilog HDL设计进阶习题.ppt_第4页
第6章 Verilog HDL设计进阶习题.ppt_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

第6章VerilogHDL设计进阶 习题 实验与设计 习题 6 1在Verilog设计中 给时序电路清零 复位 有两种不同方法 它们是什么 如何实现 答 同步清零 异步清零 在过程语句敏感信号表中的逻辑表述posedgeCLK用于指明正向跳变 或negedge用于指明负向跳变实现 6 2哪一种复位方法必须将复位信号放在敏感信号表中 给出这两种电路的Verilog描述 答 异步复位必须将复位信号放在敏感信号表中 同步清零 always posedgeCLK CLK上升沿启动Q D 当CLK有升沿时D被锁入Q异步清零 always posedgeCLKornegedgeRST begin 块开始if RST Q 0 如果RST 0条件成立 Q被清0elseif EN Q D 在CLK上升沿处 EN 1 则执行赋值语句end 块结束 习题 6 3用不同循环语句分别设计一个逻辑电路模块 用以统计一8位二进制数中含1的数量 moduleStatistics8 sum A output 3 0 sum input 7 0 A reg 3 0 sum integeri always A beginsum 0 for i 0 i 8 i i 1 for语句if A i sum sum 1 elsesum sum endendmodule moduleStatistics8 sum A parameterS 4 output 3 0 sum input 7 0 A reg 3 0 sum reg 2 S 1 TA integeri always A beginTA A sum 0 repeat 2 S beginif TA 1 sum sum 1 TA TA 1 endendendmodule repeat循环语句 for循环语句 moduleStatistics8 sum A parameterS 8 output 3 0 sum input 7 0 A reg S 1 AT reg 3 0 sum reg S 0 CT always A beginAT S 1 b0 A sum 0 CT S while CT 0 beginif AT 1 sum sum 1 elsesum sum beginCT CT 1 AT AT 1 endendendendmodule 6 3用不同循环语句分别设计一个逻辑电路模块 用以统计一8位二进制数中含1的数量 while循环语句 modulevoter7 pass vote outputpass input 6 0 vote reg 2 0 sum integeri regpass always vote beginsum 0 for i 0 i 6 i i 1 for语句if vote i sum sum 1 if sum 2 pass 1 若超过4人赞成 则pass 1elsepass 0 endendmodule 习题 6 4用循环语句设计一个7人投票表决器 习题 6 5Verilog设计一个4位4输入最大数值检测电路 Verilog设计一个4位4输入最大数值检测电路moduleMaximum value detection Mostlarge a b c d 4位4输入最大数值检测电路output 3 0 Mostlarge input 3 0 a b c d wire 3 0 sum1 sum2 sum3 assignsum1 a b a b assignsum2 c d c d assignMostlarge sum1 sum2 sum1 sum2 endmodule 习题 6 6从不完整的条件语句产生时序模块的原理看 例6 9和例6 10从表面上看都包含不完整条件语句 试说明 为什么例6 9的综合结果含锁存器 二例6 10却没有 答 参见书P137 习题 6 6从不完整的条件语句产生时序模块的原理看 例6 9和例6 10从表面上看都包含不完整条件语句 试说明 为什么例6 9的综合结果含锁存器 二例6 10却没有 答 参见书P137 事实上 例6 9中 T在过程中出现了3次非阻塞赋值操作 即有3个赋值源对同一信号T进行赋值 T 0 T T 1和T T 2 但根据以上的讨论 对于非阻塞式赋值 前两个语句中的赋值目标信号T都不可能得到任何数值 只有最后的T T 2语句中的T的值能得到更新 然而 由于赋值符号右边的T始终未得到任何确定的初始值 即语句T 0并未完成赋值 所以最后的T始终是个未知值 结果只能被综合成随S1和S0随机变动的时序电路 导致T成为一个不确定的信号 结果在过程最后的case语句中 无法通过判断T的值来确定选通输入 即对OUT的赋值 例6 10就不一样了 程序首先执行了阻塞式赋值语句T 0 T即刻被更新 从而使两个if语句中的T都能得到确定的初值 另一方面 当if语句不满足条件时 即当S0或S1不等于1时 由于T已经在第一条赋值语句中被更新为确定的值0了 所以尽管两个if语句从表面上看都属于不完整的条件语句 也不可能被综合成时序电路了 显然也就有了图6 4所示正确的波形输出 习题 6 7设计一个求补码的程序 输入数据是一个有符号的8位二进制数 设计一个求补码的程序 输入数据是一个有符号的8位二进制数moduleBinary complement a b 二进制数补码input 7 0 a output 7 0 b integeri reg 7 0 d reg 6 0 c always a beginif a 7 1 beginfor i 0 i 7 i i 1 c i a i d 7 0 a 7 c 6 0 7 d1 endelsed 7 0 a 7 0 endassignb 7 0 d 7 0 endmodule 习题 6 8VerilogHDL设计一个比较电路 当输入的8421BCD码大于5时输出1 否则输出0 设计一个四舍五入判别电路 其输入为8421BCD码 要求当输入大于或等于 时 判别电路输出为 反之为 程序2moduleBCD Compare a b outputb input 3 0 a assignb a 5 1 0 endmodule 程序1moduleBCD Compare a b outputb input 3 0 a wirec d and c a 1 a 2 and d a 0 a 2 or b d c a 3 endmodule 原理图 6 9用原理图或Verilog输入方式分别设计一个周期性产生二进制序列01001011001的序列发生器 用移位寄存器或用同步时序电路实现 并用时序仿真器验证其功能 习题 一 计数型序列信号发生器1 计数型序列信号发生器组成与特点计数型序列信号发生器能产生多组序列信号 这是移位型发生器所没有的功能 计数型序列信号发生器是由计数器和组合电路构成的 序列的长度P就是计数器的模数 2 计数型序列信号发生器的设计 通过例题来说明 例1 设计01001011001序列信号发生器由于序列长度已经知道P 11 所以先用74163N设计一个模11的计数器 再用八选一数据选择器实现序列输出 把计数器的输出端作为数据选择器的地址变量 它的电路图为 如图 1 序列信号是指在同步脉冲作用下循环地产生一串周期性的二进制信号 能产生这种信号的逻辑器件就称为序列信号发生器 根据结构不同 它可分为反馈移位型和计数型两种 6 9用原理图或Verilog输入方式分别设计一个周期性产生二进制序列01001011001的序列发生器 用移位寄存器或用同步时序电路实现 并用时序仿真器验证其功能 习题 1101000101 二进制序列01001011001 6 9用原理图或Verilog输入方式分别设计一个周期性产生二进制序列01001011001的序列发生器 用移位寄存器或用同步时序电路实现 并用时序仿真器验证其功能 习题 二 移位型序列信号发生器1 移位型序列信号发生器的组成移位型序列信号发生器是由移位寄存器和组合电路两部分构成 组合电路的输出 作为移位寄存器的串行输入 由n位移位寄存器构成的序列信号发生器所产生的序列信号的最大长度为 P 2n2 移位型序列信号发生器的设计 我们通过例题来说明 例1 试设计一个01001011001序列信号发生器首先确定移位寄存器的位数 并画出编码状态图 并找出迁移关系 P 11 因此只需要74194N中的四位 按序列信号四位一组去划分 有十中状态 它的转换关系是 如图 1 如图 1 6 9用原理图或Verilog输入方式分别设计一个周期性产生二进制序列01001011001的序列发生器 用移位寄存器或用同步时序电路实现 并用时序仿真器验证其功能 习题 6 9用原理图或Verilog输入方式分别设计一个周期性产生二进制序列01001011001的序列发生器 用移位寄存器或用同步时序电路实现 并用时序仿真器验证其功能 习题 74194N 6 9用原理图或Verilog输入方式分别设计一个周期性产生二进制序列01001011001的序列发生器 用移位寄存器或用同步时序电路实现 并用时序仿真器验证其功能 习题 6 9用原理图或Verilog输入方式分别设计一个周期性产生二进制序列01001011001的序列发生器 用移位寄存器或用同步时序电路实现 并用时序仿真器验证其功能 习题 例6 14 moduleSHFT1 CLK LOAD DIN QB CN 左移移位寄存器output 10 0 QB 移位数据输出outputCN 进位输出inputCLK LOAD input 10 0 DIN 待加载移位的数据reg 11 0 REG regCY always posedgeCLK beginif LOAD REG DIN 注意LOAD是与CLK上升沿同步的控制信号elseREG 0 REG 11 REG 11 1 REG 10 0 CY REG 11 带进位循环左移endassignQB REG 移位后输出assignCN CY 移位后输出endmodule 6 10基于原理图输入方式 用74194 74273 D触发器等器件组成8位串入并出的转换电路 要求在转换过程中数据不变 只有当8位一组数据全部转换结束后 输出才变化一次 用计数器和数据选择器构成序列信号发生器 例 产生一个8位的序列信号00010111 实验与设计 6 1半整数与奇数分频器设计 1 实验目的 学习利用Verilog完成实用程序的设计 2 实验内容1 3 实验内容2 4 实验内容3 5 实验内容4 实验与设计 6 2数控分频器设计 1 实验目的 2 实验内容1 3 实验内容2 4 实验内容3 5 实验内容4 6 实验内容5 实验与设计 6 3VGA彩条信号显示控制电路设计 1 实验目的 2 实验原理 实验与设计 6 3VGA彩条信号显示控制电路设计 1 实验目的 2 实验原理 实验与设计 实验与设计 6 3VGA彩条信号显示控制电路设计 1 实验目的 2 实验原理 实验与设计 6 3VGA彩条信号显示控制电路设计 1 实验目的 2 实验原理 实验与设计 6 3VGA彩条信号显示控制电路设计 1 实验目的 2 实验原理 实验与设计 6 3VGA彩条信号显示控制电路设计 1 实验目的 2 实验原理 3 实验内容1 4 实验内容2 5 实验内容3 6 实验内容4 实验与设计 6 4基于时序电路的移位相加型8位硬件乘法器设计 1 实验原理 2 实验任务1 3 实验任务2 4

温馨提示

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

评论

0/150

提交评论