【工学】VHDL语言设计全加器.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文档。上传文档
查看更多
实验四:全加器的设计通信0704王晓琳 0120709320435实验目的通过本次实验,对结构体不同描述方式的理解与应用有更深的了解。实验要求对于给定的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 ISBEGIN 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; sum = sum_vector (n) AFTER 2*tpd; c_out = carry_vector (n) AFTER 3*tpd; END PROCESS;END behav;2、数据流描述方式程序:(full_adder.vhd)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY full_adder IS GENERIC(tpd

文档评论(0)

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

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

版权声明书
用户编号:6110200002000000

1亿VIP精品文档

相关文档