模7加法器的設计.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
模7加法器的設计

数电实验实验报告 实验题目:模7加法器的设计与仿真 姓名: 学号: 指导老师: 地点与时间:5.4下午 科研楼A304 5.11下午 科研楼A304 【摘要】:本实验通过利用VHDL编程,完成了一个3bit模七加法器的层次化设计与构造。并利用Modelsim进行仿真,得到无符号数相加的结果。在此的基础上,对原先设计的模块进行进一步的优化,达到更为简便、占用更少的目的。 实验任务要求 1、实验目的:利用VHDL完成两个3BIT加法器模7的设计,并用Modelsim进行仿真。 2、实验任务:设计一个模7的加法器,其中,输入和输出位宽为3bit。 3、实验要求: (1)设计一个模7的加法器,其中,输入和输出位宽为3bit。 (2)学习语言,采用分层结构,用结构描述构成该加法器,最小单位为半加器。 (3)编写VHDL程序完成3位加法器模7的功能,并通过Modelsim进行仿真验证。 (4)记录数据,撰写实验报告。 实验方案及原理 2.1总体设计思路: 输入:两个3bit的二进制数(x1,x2) 输出:一个3bit的数(y),其值为两输入相加后mod 7的结果 数学描述:y=(x1+x2)mod 7 2.2加法器顶层模块: 图1、加法器原理 如图,要求两个3bit二进制数相加,得到另一个3bit二进制数,但是在实际测试与模拟的情况下,我们可以选用unsigned进行模拟,可以更清楚方便判断设计是否正确。 2.3加法器内部结构: 整个加法器由一个3bit加法器,通过由进位位控制的一个多路复用器,判断相加后是否溢出;之后再利用一个与门控制的多路复用器,判断是否为111;之后再输出相加所得到的值。 图2、加法器内部构造 其中3bit加法器可以由三个全加器构建,可以由一个半加器和两个全加器构建,也可以直接调用库函数。在这里为了练习VHDL语言,仅采用由三个全加器和一个半加器、两个全加器构建的方法 图3、3bit加法器 图4、用半加器构建全加器 系统设计及仿真 3.1利用2个全加器一个半加器进行设计 (1)顶层模块设计 (2)模块程序设计 1、半加器设计 2、用半加器构造的全加器 3、用全加器和半加器构建的3bit加法器 4、加一的部分 5、多路复用器 6、3bit与门 7、测试文件 3.2利用3个全加器进行设计 在顶层结构并没有变化的情况下,这种做法只是对3bit加法器的构建起一个优化的作用,省去了半加器的构建。但是应该要注意的是,在连接管脚的时候应该把3bit加法器的第一个进位位置0. 1、全加器 2、用全加器构建3bit加法器 但是在这里,需要注意的事情就是Cin需要置0,否则测试程序无法进行模拟。 3.3对门级系统进行优化 在之前的系统设计中,我们虽然已经对3bit加法器进行了优化,但是整个模块依然比较耗能。因为多路复用器和之后的与门本来就是一个门级的系统,如果单独用一个模块来表示的话,相对比较麻烦。但是将其作为一个process写在顶层代码中,就会比较简便。 在上一个方案的基础上,我们可以去掉mux和and one,andgate这三个模块,并作如下修改: 这样的修改需要再添加一个库函数: 系统硬件实现与测量 根据以上构建结果,我们可以对所得到的加法器进行结果仿真。添加波形的仿真结果如下: 图5 输入二进制数的波形 可以看出,这样的结果用于判断是不太方便的,所以我们可以选择Radix选项中的unsigned,然后就可以得到这样的结果: 图6、加入无符号数的波形 这样就可以很好的判断我们最后所做出来的模七加法器是否可以得到正确的结果。 五、结束语 5.1故障分析与解决办法 1、在对模七加法器进行第一次优化的时候,由于经验不足,不知在何时对端口进行置零,出现无法加载的情况。 解决办法:首先检查端口名称是否一致,在这个情况下查找有哪一些模块是要用到全加器的,然后尝试在输入时直接输入“0”; 2、在查收的时候提到有两个门级结构可以被简化,即尝试把他们删除,写进process里面。但是完成的时候却无法加载。 解决方法:因为使用之前代码,则不存在端口问题。经查书得如果要写进process里面需要再添加一个库函数,才可以使用。 5.2收获情况 为完成这个实验,学习了VHDL相关语言的语法和应用。虽然仅仅是皮毛,但是一直学习和练习的话应该可以很好的应用。除了这个方面,在学习和设计模七加法器的时候,也对课堂的知识进行了一定的巩固,有了更深的理解,同时也在对设计的优化上找到了乐趣。

文档评论(0)

s4as2gs2cI + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档