实验一-加法器的设计与实现_第1页
实验一-加法器的设计与实现_第2页
实验一-加法器的设计与实现_第3页
实验一-加法器的设计与实现_第4页
实验一-加法器的设计与实现_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

实验项目二 简单计算器设计与实现实验项目二 简单计算器设计与实现 基本要求 基本要求 1 能够实现加减运算 2 能够实现乘法运算 扩展要求 扩展要求 1 能够实现除法运算 一 实验目的一 实验目的 利用原件例化语句完成一个 8 位加法器的设计 二 实验环境二 实验环境 Quartus II 开发系统 三 实验内容三 实验内容 1 掌握层次化设计的方法 2 掌握一位全加器工作原理 3 掌握用 VHDL 文本输入法设计电子线路的详细流程 4 掌握元件例化语句用法 5 熟悉软硬件设计验证方法 四 实验过程四 实验过程 设计思想 8 位二进制加法器可以由 8 个全加器通过级联的方式构成 根据全加器级联的原理 用 VHDL 设计一个 8 位二进制数的加法器 可以先设计一个一位全加器 然后利用一位全加 器采用元件例化的方式实现加法器 实验步骤 1 设计一个全加器 新建工程 建立源文件 输入 VHDL 设计文件 如下图所示 完成设计文件输入后 保存文件 对文件进行编译 仿真 以下是仿真结果 如图所 示 由图可知仿真结果正确 2 元件例化 把 VHDL 设计文件转为原理图中使用的元件 在文件菜单 File 中选择 Creat Update 选项 单击 Create Symbol File for Current File 选项 系统自动生成相应的元件标号 重复新建文件的操作 选择 Block Diagram Schmatic File 选项 新建一个原理图 文件 在添加元件列表中可以看到自动生成的元件 选择 full adder 这个元件添加到原理 图中 如下图所示 3 完成顶层图的设计 用生成的元件标号 完成顶层图的设计 这里有两种方法 一种是直接用原理图设计 根据原理图设计工具的使用方法 完成顶层文件的设计 这个方法比较复杂 所以这里选 择另一种方法 通过 VHDL 设计文件 继续建立源文件 输入 VHDL 设计文件 如下图所示 依照上述步骤 保存文件 对文件进行编译 仿真 以下是仿真结果 如图所示 五 实验总结五 实验总结 本次实验的目的是设计一个 8 位二进制加法器 而 8 位二进制加法器可以由 8 个全加 器通过级联的方式构成 根据全加器级联的原理 用 VHDL 设计一个 8 位二进制数的加法器 可以先设计一个 一位全加器 然后利用一位全加器采用元件例化的方式实现加法器 总结实验过程中遇到的各种问题 问题产生的原因 解决方法 分析仿真结果 验证 8 位加法器设计的是否正确 根据实验设计思路 我先用 VHDL 设计了一个全加器 full adder vhd 编译 仿真成 功后 通过元件例化的方式 采用原理图设计了一个 8 位的加法器 adder8 bdf 但是在这 个过程中出现了很多问题 即由于我是把这个 8 位的加法器的每个全加器元件输入输出引 脚分开的 因此一开始就设计了 17 个输入引脚 这使得我在给输入引脚添加信号时不知道 添加什么信号 才能够起到验证仿真结果是否正确的目的 另外 我在这里还遇到了一些其他问题 由于在建立原理图文件 adder8 bdf 以后没 有将该原理图文件设置成顶层文件 这使得我在给输入引脚添加信号时无法添加引脚 这 里还存在一个问题 当通过原理图设计 8 位加法器时 我不知道能不能把它当着一个整体 即 3 输入 2 输出 另外 怎么通过在原理图设计里面把这一思想表示出来 由于通过原理图设计无法完成 8 位加法器的设计 所以我又换了 VHDL 设计 通过 VHDL 设计比原理图设计简单 但是更容易出错 比如输入引脚 中间信号生成等的不匹配 建立 VHDL 源文件以后 保存为 adder8 vhd 文件名 编译 仿真 但是由于我是将 8 位加法器当成的一个整体 即 3 输入 2 输出 并且在端口定义时我所定义的数据类型为逻 辑矢量 因此这里又出现一个问题 即在仿真时给输入信号添加信号时不能确定到底应该 怎么添加 并且其中间信号无法确定 不过后来在老师的指导下 我明白了错误根源在哪 里 在对 8 位的加法器进行仿真时 一开始我是用的时序仿真 这里就出现一个问题 即 仿真结果为未知 但是换用功能仿真的时候 其结果就是正确的 不指导是什么原因 还 有另外一个问题 即我在将 adder8 vhd 文件设置为顶层文件以后 并没有进行编译就开始 仿真 这使得我在给引脚添加信号时始终也找不到输入信号 不过好在面意识到了这个问 题 在本次实验过程中 虽然出现了很多问题 但正是因为在操作过程中发现了很多问题 并且通过对这些问题的解决 我对 Quartus II 7 0 开发系统环境也有了更深入的了解和 认识 每一次发现错误 都是一个新的进步 比起上次实验课 我觉得自己在操作动手能力 方面又有了提升 至少现在看到一个问题的时候 能够明白是什么问题 能够知道该怎么 去问 该怎么去解决它 所以说 无论干什么 但凡是要想真正学一门知识 都要自己去 摸索 只有自己亲自动手去做了 才能够真正深入地认识和了解它 才能够学到自己想要 的东西 另外 在学习的过程中 还要掌握技巧 我觉得在这方面自己就很欠缺 因此 以后一定要注意 努力培养这方面的能力 实验六实验六 乘法器的设计乘法器的设计 一 实验目的一 实验目的 1 了解乘法器的工作原理 2 了解复杂时序电路的设计流程 二 实验原理及内容二 实验原理及内容 实验原理实验原理 设计一个能进行两个十进制数的乘法器 乘数和被乘数的输入用开关 K1 K10 代表 0 9 用编码器对数据开关进行编码 设置相乘信号 当输入完毕后 相乘信号有效 使输入的 乘数送进寄存器寄存 在输入被乘数 设计等于信号 当输入完毕后 启动乘法模块 实验内容实验内容 1 设计一个能进行两个十进制数相乘的乘法器 乘数和被乘数均小于 100 可以参考 教材 231 页的 VHDL 代码来设计 2 对所编写的电路进行编译及正确的仿真 三 实验条件三 实验条件 Quartus II 实验环境 四 实验及仿真四 实验及仿真 顶层文件如下 该器件 multi 对乘法过程进行时序控制 Clk 为时钟信号 lStart 控制乘法器的开始 Endd 控制乘法器结束 Clr 起到复位作用 Ca 用来控制乘数移位寄存器 74194 的移位功能 在乘法器进行移位相加的过程中进行 移位 Cb 0 cb 1 用来控制被乘数移位寄存器 74194 的移位功能 在乘法器进行移位相加的 过程中进行移位 Cm 0 cm 1 控制八位移位寄存器 74198 的移位功能 使得和乘数与被乘数的移位相一 致 编码如下 library ieee use ieee std logic 1164 all entity multi is port start in std logic i4 in std logic bi in std logic clk in std logic endd out std logic clr out std logic ca out std logic cb1 out std logic cb0 out std logic cm1 out std logic cm0 out std logic cc out std logic end multi architecture multi architecture of multi is signal current state next state bit vector 1 downto 0 constant s0 bit vector 1 downto 0 00 constant s1 bit vector 1 downto 0 01 constant s2 bit vector 1 downto 0 10 constant s3 bit vector 1 downto 0 11 begin com1 process current state start i4 begin case current state is when s0 if start 1 then next state s1 else next statenext statenext stateif i4 1 then next state s0 else next stateendd 1 clr 1 ca 0 cb1 0 cb0 0 cm1 0 cm0 0 ccendd 0 clr 0 ca 1 cb1 1 cb0 1 cm1 0 cm0 0 ccif bi 1 then endd 0 clr 1 ca 0 cb1 0 cb0 0 cm1 1 cm0 1 cc 1 else endd 0 clr 1 ca 0 cb1 0 cb0 0 cm1 0 cm0 0 ccendd 0 clr 1 ca 0 cb1 0 cb0 1 cm1 0 cm0 1 cc 0 end case end process com2 reg process clk begin if clk 1 and clk event then current state next state end if end process reg end multi architecture 仿真如下 五 收获与总结五 收获与总结 在乘法器的试验中 主要设计的其

温馨提示

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

最新文档

评论

0/150

提交评论