实验报告(组合电路设计).doc

上传人:罗晋 文档编号:9109298 上传时间:2021-02-02 格式:DOC 页数:18 大小:241KB
返回 下载 相关 举报
实验报告(组合电路设计).doc_第1页
第1页 / 共18页
实验报告(组合电路设计).doc_第2页
第2页 / 共18页
实验报告(组合电路设计).doc_第3页
第3页 / 共18页
实验报告(组合电路设计).doc_第4页
第4页 / 共18页
实验报告(组合电路设计).doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《实验报告(组合电路设计).doc》由会员分享,可在线阅读,更多相关《实验报告(组合电路设计).doc(18页珍藏版)》请在三一文库上搜索。

1、电子设计自动化课程实验报告学号:08291117 姓名: 图尔荪。依明 班级:电气0804 任课老师:李景新第二次实验报告组合电路设计(一)课题:设计一个四位全加器,进位输出是快速进位位一、 实验内容设计一个四位的全加器,进位输出是快速进位位;二、 实验设计及过程(1) 设计思路快速进位加法器,也就是超前进位加法器,其原理简单地说就是使各位的进位直接由加数和被加数来决定,即有如下逻辑表达式: 而不需要依赖低位进位。逻辑表达式解释:当第i位被加数Ai和加数Bi均为1时,有,由“或”的原理可知,不论低位运算结果如何,本位必然有进位输出()。当Ai和Bi中只有一个为1时,有且,因此。所以,四位二进制

2、全加器的“和”与“进位”相结合,可得到表达式:从而构成快速进位加法器。(2) 流程图 (3) 程序 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; ENTITY quanjiaqi IS PORT(A0,A1,A2,A3,B0,B1,B2,B3,Ci:IN STD_LOGIC; S0,S1,S2,S3,Co:OUT STD_LOGIC ); END quanjiaqi; ARCHITECTURE beth OF quanjiaqi IS BEGIN PROCESS(A0,A1,A2,A3,B0,B

3、1,B2,B3,Ci) VARIABLE U0,U1,U2:STD_LOGIC; BEGIN S0=(A0 xor B0) xor Ci; U0:=(A0 AND B0) OR (A0 OR B0) AND Ci); S1=(A1 xor B1) xor U0; U1:=(A1 AND B1) OR (A1 OR B1) AND A0 and B0) or (A1 or B1) and (A0 or B0) and Ci); S2=(A2 xor B2) xor U1; U2:=(A2 and B2) or (A2 or B2) and A1 and B1) or (A2 or B2) and

4、 (A1 or B1) and A0 and B0) or (A2 or B2) and (A1 or B1) and (A0 or B0) and Ci); S3=(A3 xor B3) xor U2; Co=(A3 xor B3) and (A2 xor B2) and (A1 xor B1) and (A0 xor B0) and Ci) or (A3 xor B3) and (A2 xor B2) and (A1 xor B1) and A0 and B0 ) or (A3 xor B3) and (A2 xor B2) and A1 and B1 ) or (A3 xor B3) a

5、nd A2 and B2) or (A3 and B3); END PROCESS; END beth;(4) 仿真波形波形解释:1、010ns:1+1+1=3;2、1020ns:6+10=16;3、2030ns:1+10+5=16;4、3040ns:1+15+15=31.(注:Ci 是借位位,Co 是进位位,A与B是加数,S为和)由此可知,该仿真波形说明设计的正确性。三、 实验收获本实验为简单逻辑组合电路,全加器设计,使用了最简单“xor”和“and”语句,初步了解了VHDL语言的使用和quarters软件的编程环境,为之后的学习打下很好的基础。另外,对全加器中的快速进位有了深刻的了解,程序

6、较逐步进位复杂难想,但可以使得程序执行起来快速,减少时间的损耗。四,试验中遇到的问题及解决步骤1、找不到合适的编写方式实现快速进位在数电课本上找到了全加器的资料,并且找到了合适的公式。2、建立文件编写完之后无法申报文件。应该把文件名与汇编语言中定义的名字一样。组合电路设计(二)课题:用IF语句和CASE语句设计一个4-16译码器一实验目的及内容1、熟悉4-16译码器的原理2、熟悉VHDL语言的编程逻辑的构建。3、掌握VHDL语言的基本结构及使用方法。二实验设计思路1、 使能端为E;当E=1时芯片开始工作.否者输出为1111111111111111。2、 当输入端口abcd为:0000时输出q=

7、11111111111111100001时输出q=11111111111111010010时输出q=11111111111110110011时输出q=11111111111101110100时输出q=11111111111011110101时输出q=11111111110111110110时输出q=11111111101111110111时输出q=11111111011111111000时输出q=11111110111111111001时输出q=11111101111111111010时输出q=11111011111111111011时输出q=11110111111111111100时输出q=

8、11101111111111111101时输出q=1101111111111111110时输出q=1011111111111111111时输出q=011111111111111高阻或无输出时输出q= xxxxxxxxxxxxxxxx三、流程图YN.四、源程序:library ieee;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY lsh ISPORT(a,b,c,d,E:IN STD_LOGIC; q:OUT STD_LOGIC_VECTOR(15 DOWNTO 0);END lsh ;architectu

9、re behave of lsh issignal indata:std_logic_vector(3 downto 0);beginindataqqqqqqqqqqqqqqqqq=XXXXXXXXXXXXXXXX;end case;elseq=1111111111111111;end if;end process;end behave;五、仿真波形当使能端E=0时,输出全为1当使能端E=1时,输入0100,输出为q(4)=0,其余为1一、 实验收获本次实验开始使用条件语句IF和CASE。IF是假设有某种情况后,进而执行相应的程序;当假设条件比较多而且有一定规律时,就应该使用CASE语句进行编

10、程。第三次实验报告时序电路设计课题:4位二进制同步加/减法可逆计数器一实验目的及内容1.了解4位二进制同步加/减法可逆计数器原理。2.熟悉VHDL语言的基本结构及使用方法。二实验设计思路输入端口:clr:清零端(高电平有效,异步清零)clk:时钟脉冲d3d0:4位二进制数输入端 updown: 加/减法控制信号(1执行加;0执行减)输出端口:q3q0:4位二进制计数输出co:进位输出bo:借位输出运行过程:clr为0时输出q3q0为0000;当clr为1是芯片开始工作;load为1时输出为q3q2q1q0= d3d2d1d0;当updown=1时为加法计数器co=0当q3q2q1q0=1111

11、时给一个clk脉冲时co=1且q3q2q1q0=0000;当updown=0时为加法计数器bo=0当q3q2q1q0=0000时给一个clk脉冲时co=1且q3q2q1q0=1111。三、流程图 四、源程序library ieee;use ieee.std_logic_1164.all;entity lsh isport(clr,clk,load,updown:in std_logic;d:in integer range 0 to 15;count:out std_logic;q:buffer integer range 0 to 15);end lsh;architecture one o

12、f lsh is beginprocess(clk,clr,d,load,updown)beginif clr=0then q=0;elsif(clkevent and clk=1)thenif load=1then q=d;elsif updown=0then q=q+1;if q=15 then count=1;end if;else q=q-1;if q=0 then count=0;end if;end if;end if;end process;end one;五、仿真波形使能端clr为0时,输出始终为0使能端为1,置数load=1时,在脉冲的作用下,输出q=输入d使能端为1,置数load=0时,实现如图所示计数功能六、实验中遇到的问题及解决步骤问题:编写程序时,由于过多使用elsif等语句,导致编写的逻辑有点不太清晰,end if 语句有时候没有一一对应清楚,在编译时出现错误。解决方法:尝试过过取消elsif语句,把所有的情况都用if列些出来,虽然程序逻辑上不会混乱,但是程序显得比较冗长,为了使程序更精练,我们调整了程序的结构,让end if与相应的if语句对其,让程序读起来更有逻辑性,条理性。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1