【工学】VHDL语言设计全加器.docVIP

  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文档。上传文档
查看更多
实验四:全加器的设计 通信0704 王晓琳 01XXXXXXXXXX5 实验目的 通过本次实验,对结构体不同描述方式的理解与应用有更深的了解。 实验要求 对于给定的4个用不同描述方式写的VHDL程序进行理解并调试,注意程序的异同和优缺点。 用1位的全加器做4位(或者2位)的全加器。要用VHDL语言实现。 实验过程 调试程序:(具体程序见附录) 行为描述方式:行为描述输入与输出间转换的行为,不需包含任何结构信息,它对设计实体按算法的路径来描述。 数据流描述方式:表示行为,也隐含表示结构,它描述了数据流的运动路线、运动方向和运动结果。 结构化描述方式:是在多层次的设计中,高层次的设计可以调用低层次的设计模块,或直接用门电路设计单元来构成一个复杂逻辑电路的方法。 分析可知,对于一个复杂的电子系统,可以将其分解为若干个子系统,每个子系统再分解成模块,形成多层次设计。这样,可以使更多的设计者同时进行合作。在多层次设计中,每个层次都可以作为一个元件,再构成一个模块或系统,可以先分别仿真每个元件,然后再整体调试。 混合描述方式:在实际设计工作中,可以采用上述三种描述方式的任意组合。 小结:用四种不同描述方式设计全加器,分析可知,不同的描述方式有各自的特点,在实际设计中,应该依据实际课题和要求,选用或综合利用不同的描述方式。 (2)2位全加器的设计 系统整体组装原理图如下图1。将一位全加器的程序进行编辑、设置工程仿真,再处理顶层文件。(本次设计采用的是第四个程序f_adder.vhd来设计2为的全加器),自己写出顶层设计程序,用一位全加器实现二位全加器。 图1 2位全加器的系统整体组装原理图 二位全加器顶层设计的VHDL源程序(two_adder.vhd) LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY two_adder IS GENERIC(tpd:TIME: 10 ns); PORT(a0,b0,a1,b1,y,ci: IN STD_LOGIC; s0,s1, co: OUT STD_LOGIC ; END two_adder; ARCHITECTURE art OF two_adder IS COMPONENT f_adder PORT(ain, bin,cin: IN STD_LOGIC; sum,cout: OUT STD_LOGIC ; END COMPONENT; SIGNAL c01 :STD_LOGIC; BEGIN u1: f_adder PORT MAP a0, b0,ci, s0,co1 ; u2: xor_gate PORT MAP a1, b1,co1,s1, sum ; END ARCHITECTURE art; 仿真结果如下图2,比对2位全加器真值表,验证仿真波形的正确性。观察波形可以看出,输出信号与输入信号有一定的延迟。并且在输出信号s0有多次毛刺,多是电路特性引起的。 图2 2位全加器仿真波形 图3是传输延迟分析,可以看出输入信号和输出信号之间的传输延迟是比较大的。 图3 传输延迟分析 附录: 1、行为描述方式 (基于全加器真值表采用行为描述方式设计的全加器(1位二进制数全加器)) 程序: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY full_adder IS GENERIC(tpd : TIME : 10 ns); PORT(x,y,c_in : IN STD_LOGIC; Sum, c_out : OUT STD_LOGIC ; END full_adder; ARCHITECTURE behav OF full_adder IS BEGIN PROCESS x, y, c_in VARIABLE n: INTEGER; CONSTANT sum_vector: STD_LOGIC_VECTOR 0 TO 3 : “0101”; CONSTANT carry_vector: STD_LOGIC_VECTOR 0 TO 3 : “0011”; BEGIN n : 0; IF x ’1’ THEN n : n+1; END IF; IF y ’1’ THEN n: n+1; END IF; IF c_in ’1’ THEN n: n+1; END IF;

文档评论(0)

专业好文档 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:6110200002000000

1亿VIP精品文档

相关文档