欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

    数字电路实验报告.doc

    • 资源ID:9368439       资源大小:651.69KB        全文页数:29页
    • 资源格式: DOC        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数字电路实验报告.doc

    目录实验一 四位海明校验码的逻辑设计 2实验二 十六进制译码计数器的设计 6实验三 脉冲分频逻辑电路的设计 10实验四 八位数据串入并出逻辑设计 16实验五 十六位运算器的逻辑设计 20实验六 4Kx8bit存储器的设计 25实验一 四位海明校验码的逻辑设计实验目的:掌握海明校验的编码原理以及设计、调试方法,巩固提高组合逻辑知识,培养实际动手能力。掌握总线的应用方法。掌握总线信息出错时发现错我和纠正错我的原理,掌握奇偶校验的原理,掌握海明校验编码原理以及设计、调试方法。实验要求:(1) 设计信息位为 4位的内存的海明校验逻辑电路,在读内存储器时,具有一位出 错报错和纠正一位错误的功能。(2) 为了难其正确性,在读出信息的通路上,要串入造错用逻辑,位数自定。(3) 奇偶发生器与海明校难器对同一位用一块奇偶校验集成块实验原理: 检错和校错 由编码理论,任何一种编码是否具有检测和纠错能力,都与编码的最小距离有关,即任何两组合法代码间最少的二进制位数的差异,L-1=D+C(D>=C)L为编码的最小距离,D表示检测错误的位数;C表示纠正错误的位数。故,8421码不具备检错能力,这是因为它的最小码距为1,当8421码的码字中有一位出错,而产生的错误代码就有可能是另一个码字,这样,无法判断它是否已出错。 8421海明校验码8421海明校验码由8421码加三位校验码组成.设8421码为I1 I2 I3 I4,三位校验码为:P3 P2 P1,则8421码为下列七位代码:位序76543218421海明码I4I3I2P3I1P2P1校验码的值由下式确定: 由此可得8421海明码的最小码距为3 ,故D=1,C=1,可检测并纠正一位错误。输出时在输出端先求出校验和: 然后判断S3S2S1,如果代码不出错,则S3S2S1=000,否则由S3S2S1构成的二进制数为1位指出出错位。实验实现:1. 利用Quartus II 工具,画出实验的TTl电路如下图经过编译仿真之后,仿真波形图如下图:如图看见,当造错数据只与原数据有一位错(1000,0100,0010,0001)时,输出的数据和输入的数据是一样的,通过海明码将错误的一位数据进行了修正。而当没有数位错的时候,yes输出的值变为1,表明在传输过程中,数据位并没有出错。2. 海明校验码的verilog实现Verilog代码如下module haiming( num , mistake , out );input 3:0 num;input 3:0 mistake;output 3:0 out;wire 2:0 hmnum;wire 2:0 ckhmnum;wire 3:0 misnum;wire 3:0 erbit;assign hmnum0 = num3num1num0, hmnum1 = num3num2num0, hmnum2 = num3num2num1;assign ckhmnum0 = misnum3misnum1misnum0hmnum0, ckhmnum1 = misnum3misnum2misnum0hmnum1, ckhmnum2 = misnum3misnum2misnum1hmnum2;assign misnum0 = num0mistake0, misnum1 = num1mistake1, misnum2 = num2mistake2, misnum3 = num3mistake3;assign erbit0 = (ckhmnum2)&ckhmnum1&ckhmnum0, erbit1 = ckhmnum2&(ckhmnum1)&ckhmnum0, erbit2 = ckhmnum2&ckhmnum1&(ckhmnum0), erbit3 = ckhmnum2&ckhmnum1&ckhmnum0; assign out = erbit misnum;endmodule这段代码,我用的assign语句,对wire类型进行赋值,因为在TTL电路之中并没有用到寄存器,而且这是一个典型的组合逻辑电路,所以并没有只用reg寄存器类型的变量。其中的每一个赋值都和上述的TTL电路相对应。其中num为输入的数据,mistake为造错的输入,hmnum为由输入数据所得到的的海明码,misnum为造错之后线路上的值,ckhmnum为根据海明码和数据生成的用于纠错的海明码,而erbit为根据ckhmnum所得到的哪一位错误的信息,最后根据这信息将错误的位进行改正。下面是根据verilog编译仿真后的波形图如图,当造错数据只与原数据有一位错(1000,0100,0010,0001)时,输出的数据和输入的数据是一样的,通过海明码将错误的一位数据进行了修正。没有错误的时候(0000),输出数据和输入数据也是一样的。实验小结:这个实验让我熟悉了本实验所用的软件的使用方法,如何利用quartus软件,画电路图,并且编译仿真,以及利用verilog HDL编写简单的组合逻辑电路,以及利用quartus软件对编写的verilog程序进行编译,仿真,以及基本的数字电路设计调试方法,本实验让我受益匪浅。实验二 十六进制译码计数器的设计实验目的: 1.掌握设计组合逻辑电路的方法 2.不同器件,不同设计方法的比较 3掌握数码显示与译码器电位间的关系,掌握小规模可编程芯片的应用,掌握GAL方程的设计实验要求: 用GAL 方程设计方法进行实验,并用MAX+PLUAS进行原理图形设计并仿真验证实验器件: 计算机及相关软件,实验教学板,GAL16V8芯片,插线等实验原理: G f VCC a babcdefgabcdefg1 2 3 4 5 a A f gb eeec h.6 7 8 9 10 d 10 h h h e d VCC c h 七段发光二极管管脚说明 共阴型 共阳型由七段管的管脚图可以列出真值表输入信号七段数码管管脚信号ABCD数码abcdefg0000011111100001101100000010211011010011311110010100401100110101510110110110610111110111711100001000811111111001911110111010A11101111011B00111111100C00011011101D01111011110E10011111111F1000111由上述真值表可以得到表达式a = (A&B&C&D|A&B&C&D|A&B&C&D|A&B&C&D|A&B&C&D)b = (A&B&C&D|A&B&C&D|A&B&C&D|A&B&C&D|A&B&C&D|A&B&C&D)c = (A&B&C&D|A&B&C&D|A&B&C&D|A&B&C&D)d = (A&B&C&D|A&B&C&D|A&B&C&D|A&B&C&D|A&B&C&D)e = (A&B&C&D|A&B&C&D|A&B&C&D|A&B&C&D|A&B&C&D|A&B&C&D)f = (A&B&C&D|A&B&C&D|A&B&C&D|A&B&C&D|A&B&C&D|A&B&C&D)g = (A&B&C&D|A&B&C&D|A&B&C&D)由此表达式即可得到对应的数码显示实现方法:(1)GAL芯片PLD16V8BASIC DECODECYB 2013.10.20SHIYAN USTC V1.0A B C D NC NC NC NC NC GNDNC NC g0 f0 e0 d0 c0 b0 a0 VCC/a0 = /A*/B*/C*D+/A*B*/C*/D+A*/B*C*D+A*B*/C*/D+A*B*/C*D/b0 = /A*B*/C*D+/A*B*C*/D+A*/B*C*D+A*B*/C*/D+A*B*C*/D+A*B*C*D/c0 = /A*/B*C*/D+A*B*/C*/D+A*B*C*/D+A*B*C*D/d0 = /A*/B*/C*D+/A*B*/C*/D+/A*B*C*D+A*/B*C*/D+A*B*C*D/e0 = /A*/B*/C*D+/A*/B*C*D+/A*B*/C*/D+/A*B*/C*D+/A*B*C*D+A*/B*/C*D/f0 = /A*/B*/C*D+/A*/B*C*/D+/A*/B*C*D+/A*B*C*D+A*B*/C*/D+A*B*/C*D/g0 = /A*/B*/C*/D+/A*/B*/C*D+/A*B*C*DDESCRIPTIONPs:具体的效果在实验的那一天已经由助教检查通过。(2) 利用verilog进行描述module yima(clk , out , count);input clk;output reg 6:0 out;output reg 3:0 count;always (posedge clk)begin count <= count + 1;endalways(count) case(count) 4d0: out <= 7b1000000; 4d1: out <= 7b1111001; 4d2: out <= 7b0100100; 4d3: out <= 7b0110000; 4d4: out <= 7b0011001; 4d5: out <= 7b0010010; 4d6: out <= 7b0000010; 4d7: out <= 7b1111000; 4d8: out <= 7b0000000; 4d9: out <= 7b0010000; 4d10:out <= 7b0001000; 4d11:out <= 7b0000011; 4d12:out <= 7b1000110; 4d13:out <= 7b0100001; 4d14:out <= 7b0000110; 4d15:out <= 7b0001110; default: out <= 8b110000000; endcase endmodule这个verilog描述其实是将计数和译码部分写到了一起,第一个always块的作用就是计数,每当一个时钟上升沿来临的时候,就将count加1,,而第二个always块的作用则是译码操作,即是一个显示译码器,将count的4为二进制码译成控制数码管的7位二进制码。注意数码管是低电平有效的。Ps:实验室所用的板子自带显示译码的功能,所以译码的always快可以去掉,具体的开发板实现已经给老师验收。下面是编译仿真之后的波形图分析仿真结果,计数器随着时钟而不断加1,out为控制7段数码管的7位二进制数。实验小结:本次试验利用GAL芯片进行编程,让我接触了一下小规模的逻辑电路的设计实现方法,而且这也是我们第一次接触到现实中的芯片去完成一个计数显示的功能,十分有意思。而且这个实验在让我们熟悉了利用卡诺图进行化简以及时序逻辑电路的基本设计方法。实验三 脉冲分频逻辑电路的设计实验目的:掌握同步时序电路和分频,延迟整形的原理和设计方法, 进一步提高实践能力。 实现下图的分频整形设计实验原理:可参考下图原理图 L17 L15 L16 CP1 CP2 CP3 CP4 CP5 CP6整形电路延迟整形电路 L9 L10 L11 L12 L13 L14按键延迟线单脉冲电 路脉冲 组合 电路 CP L1 L2 L3 L4 L5 L6 L7 L8三周期T1T34分频或2个2分频5分频 CLK 10MHZ 时序脉冲分频,分配,延迟与整形框图 (Ln = 灯n)首先要实现一个5分频。即一个五周期的循环。可以通过3个D触发器来实现该功能。五周期真值表如下:Q1Q2Q3000100010110001输出Q3。则利用时序逻辑电路的设计方法,通过卡诺图化简得到方程:Q1n = Q1n-1 & Q3n-1Q2n = Q1n-1 Q2n-1Q3n = Q1n-1 & Q2n-1四分频或二分频可直接通过计数器得到。实现一个移位型三周期计数器,利用D触发器设计。真值表如下起始Q1Q2Q3 = 000Q1Q2Q3100010001分别输出三个结果。同样的,利用时序逻辑电路的设计方法,化简得到方程:Q1n = Q1n-1 & Q2n-1Q2n = Q1nQ3n = Q2n而最后CP1CP6课通过上面得到的不同周期的分频,通过一个组合逻辑得到,观察图像,得到方程: cp1 = q4b & q5 & q6,cp2 = q4b & q5 & q6,cp3 = q4b & q5 & q7,cp4 = q4b & q5 & q7,cp5 = q4b & q5 & q8,cp6 = q4b & q5 & q8;实验实现:1. 利用Quartus II 工具,画出实验的TTl电路如下图经过编译仿真之后,仿真波形图如下图:如上图所见,仿真之后的波形图和我们的目的的波形图除了排版之外,并没有不同。本实验的TTL电路是一个异步逻辑电路,并不是所有的时钟都接在同一个时钟的上面,其实这样的做法是有一定的坏处的,在同步性方面会有一定的欠缺,但是当时做实验的时候对这方面的了解并不多,所以采用的异步的方式来实现的电路2. 利用verilog进行描述module fenpin(clk , q3 , q4 , q4b , q5 , q6 , q7 , q8 ,cp);input clk;output reg q3,q4,q4b,q5,q6,q7,q8;output wire 6:1 cp;integer i,j;always (posedge clk)begin if(i = 3) q3 <= 1; if(i = 4) begin q3 <= 0; i = 0; end i = i+1;endalways (posedge q3)begin q4 <= q4; q4b <= q4;endalways (posedge q4)begin q5 <= q5;endalways (posedge q5)begin j = j+1; case(j) 1: begin q6 <= 1;q7 <= 0;q8 <= 0; end 2: begin q6 <= 0;q7 <= 1;q8 <= 0; end 3: begin q6 <= 0;q7 <= 0;q8 <= 1;j=0; end default j = 0; endcaseendassigncp1 = q4b & q5 & q6,cp2 = q4b & q5 & q6,cp3 = q4b & q5 & q7,cp4 = q4b & q5 & q7,cp5 = q4b & q5 & q8,cp6 = q4b & q5 & q8;endmodule下面是根据verilog编译仿真后的波形图分析仿真波形图可见,与我们所期望的波形图相同。同上,使用verilog的时候,采用的是异步逻辑电路。实验小结:本实验是第一次对时序逻辑电路的设计实验,进行的是一个简单的分频的实验,这个实验利用到了手动设计5分频,和利用计数器实现分频,以及移位计数的设计。通过本次试验,我们对时序逻辑电路有了更加深刻的认识,而且在实验的过程之中我们会遇到一些问题,比如有一些毛刺,通过不断地调试消除毛刺的过程,我们对时序逻辑电路延迟的问题有了更深刻的认识,而且对如何对它进行调试也有了一个基础的概念。通过编写这个实验的verilog,我们知道了如何利用verilog实现时序逻辑电路。实验四 八位数据串入并出逻辑设计实验目的: 从一个八位起始码开始,串行读入数据,每读入八位一次性并行输出,读到八位终止码结束。进一步掌握同步时序电路及其在计算机中的应用,提高灵活应用,以及分析、设计、调试能力。实验原理: 这次实验中的描述语言的起始码为01100110,终止码为10011001。 原理图的起始码为10011001,终止码为01100110. 原理图设计时,输入接入74164移位寄存器,每个时钟节拍将读入一位数据并将之前读到的数据进行移位,那么74164输出即为当前并行的八位数据,将该八位数判断,当满足触发起始条件时,将触发jk触发器,启动计数器74161,产生一个八倍与时钟的周期,连接至74273片,每次计数器时钟一个节拍输出一次,相当于每八位串行数据输出一次。当读入终止码时,触发jk触发器,关闭计数器,即不在触发74273输出。描述语言设计时则相对简单,我们采用一个八位寄存器来保存输入数据,当读到起始码时进行判断,并将判断寄存器置1,计数寄存器置0并开始计数,每计数八次将寄存器中的存值输出。读到终止码时,将判断寄存器置0,不再输出。实验实现:1.利用Quartus II 工具,画出实验的TTl电路如下图经过编译仿真之后,仿真波形图如下图:分析波形图可知,当输入依次为10011001时,开始计数,然后再8个周期之后,即下一个八位数据进入之时,将此时输入的8位数据并行输出。由图像可知,将后面的两个8位数据依次输出,没有出现错误,当依次输入01100110的时候,停止并行输出,并且输出为零。2. verilog实现module crbc(numin,numout,clk);input numin,clk;output reg 7:0 numout;reg 7:0 num;reg 3:0 j;reg state;always (posedge clk)begin num = (num << 1) + numin; if(num = 8b01100110) begin state = 1; j = 0 ; end if(num = 8b10011001) begin state = 0; numout = 0; j = 0 ; end if(j = 8 && state =1) begin numout <= num; j = 0; end j = j+1;endendmodule代码就是比较简单的verilog代码,每一次输入一个数据,就将8位的寄存器左移一位,然后加上新输入的一位,检测是否符合开启并行输出的条件,然后计数8个周期,输出输入的串行数据。编译仿真之后的波形图同上面TTL电路图的波形图,当输入为01100110的时候,开启并行输出,开始计数,8个周期之后输出串行数据,连续并行输出两个8位串行数据并没有出现错误。实验小结: 本实验是设计8位串入并出,实验并不困难,但是加深了我们对时序逻辑电路的理解,以及数据在计算机中传播的认识。 实验五 十六位运算器的逻辑设计实验目的:1掌握算术了逻辑部件74181和提前进位发生器74182等集成块的结构原理和应用。2熟悉运算器基本组成的控制方法,以及不同的结构进位速度情况。实验内容:1.用74181,74182等集成块和数字逻辑实验仪组成16位可控运算器。2. 控制不同运算方式,并列表记录运算结果3. 设计一个选择,分别利用超前进位和不利用超前进位进行加法运算,并比较所用时间的差。实验原理:ALU功能表,74181串行计算:直接使用74181,将进位串联起来就可以并行计算:加上74182超前进位。超前进位推导4位之间采用先行进位公式,每一位的进位公式可递推如下:第0位向第1位的进位公式为 Cn1Y0X0Cn 其中Cn是向第0位(末位)的进位。第1位向第2位的进位公式为 Cn2Y1X1Cn1Y1Y0X1X0X1Cn 第2位向第3位的进位公式为 Cn3Y2X2Cn2Y2Y1X1Y0X1X2X0X1X2Cn 第3位的进位输出(即整个4位运算进位输出)公式为 Cn4Y3X3Cn3Y3Y2X3Y1X2X3Y0X1X2X3X0X1X2X3Cn 利用四片74181构成16位的ALU,然后利用74182实现超前进位,并且利用数据选择器74157进行超前进位与非超前进位间的选择。实验实现:1. 利用Quartus II 工具,画出实验的TTl电路如下图经过编译仿真之后,仿真波形图如下图:如图,输入a和b分别为16进制的1234和2222是,sel从0开始计数,则输出如下,与实验时老师给我们的标准相同。2. 利用verilog进行描述Verilog只描述了16位的超前进位加法器的实现,以及串行加法器的实现,以运算速度的比较。module yunsuan(input15:0A,input15:0B,output15:0OUT,output reg 15:0 out2);wireCX;wireCY;wireCZ;wire3:0P;wire3:0G;reg ci;integer i;Tadder4 adder4_0(.a(A3:0), .b(B3:0), .ci(0), .f(OUT3:0), .p(P0), .g(G0);Tadder4adder4_1(.a(A7:4), .b(B7:4), .ci(CX), .f(OUT7:4), .p(P1), .g(G1);Tadder4adder4_2(.a(A11:8), .b(B11:8), .ci(CY), .f(OUT11:8), .p(P2), .g(G2);Tadder4adder4_3(.a(A15:12), .b(B15:12), .ci(CZ), .f(OUT15:12), .p(P3), .g(G3);Tadvance adva(.p(P), .g(G), .ci(0), .cx(CX), .cy(CY), .cz(CZ);always (A or B)begin for(i=0 ; i <= 15 ; i = i+1) begin out2i = Ai + Bi + ci; ci = Ai&Bi | Bi&ci | Ai&ci; endendendmodulemodule Tadder4(input3:0a,input3:0b,inputci,output3:0f,outputp,outputg);assignf = a + b + ci;assigng3 = a3 & b3;assigng2 = a2 & b2;assigng1 = a1 & b1;assigng0 = a0 & b0;assignp3 = a3 | b3;assignp2 = a2 | b2;assignp1 = a1 | b1;assignp0 = a0 | b0;assigng = g3 | (p3 & g2) | (p3 & p2 & g1) | (p3 & p2 & p1 & g0);assignp = p3 & p2 & p1 & p0;endmodulemodule Tadvance(input3:0p,input3:0g,inputci,outputcx,outputcy,outputcz);assigncx = g0 | (p0 & ci);assigncy = g1 | (p1 & g0) | (p1 & p0 & ci);assigncz = g2 | (p2 & g1) | (p2 & p1 & g0) | (p2 & p1 & p0 & ci);endmoduleVerilog用了例化的方法,将4个4位的加法器,实现了超前进位,Tadder4是产生g,p的作用,而Tadvance是产生超前进位的作用。最后在主模块中调用他们以实现超前进位加法器。而串行进位的加法器,则是利用for循环语句,将每一位的进位传给下一位,然后循环到最高位。下面为编译仿真之后的波形图由波形仿真图可见,超前进位比串行进位约有5ns左右的速度的提前。可见超前进位在运算中相比串行进位可以提高运算的速度。实验小结本次试验为一个16位的运算器的搭建,将4片4位的ALU搭建成一个16位的AUL,并且利用74182实现超前进位,利用74157实现超前进位和非超前进位的选择。在verilog之中利用硬件描述语言实现了16位超前进位的加法器,让我对超前进位的逻辑实现有了更加深刻的理解。并且对超前进位对时间的提升有了更加深刻的认识。实验六 4Kx8bit存储器的设计实验目的:熟悉MOS集成存储电路的性能和使用;掌握扩大存储容量和存储器字长的方法;了解设计功能较完善的存储器,即有独立的控制、时序、自检、校验功能的存储器的基本要求实验内容:利用Quartus II 1kx4bit的存储器件搭建1kx8bit的存储器件,以实现与2114功能相仿的存储器,再通过例化所搭建的原件,实现4kx8bit的存储器,并进行验证。利用verilog对此电路图进行描述,利用波形图验证正确性。实验实现:1. 利用Quartus II 工具,画出实验的TTl电路如下图此图是通过利用1kx4bit的存储器搭建的1kx8bit的例化的存储器件,与2114功能相仿。下图为利用例化过后的1kx8bit元件进行位扩展,扩展成4kx8bit的存储器,TTl电路如下图经过编译仿真之后,仿真波形图如下图:如图,在写使能有效时将数据写入对应地址之中,在读使能有效的时候将数据读出来。2.利用verilog进行描述module ram( input 7:0 data, input 11:0 address, input wen, input ren, input en, input clk, output reg 7:0 outdata );wire7:0out1;wire7:0out2;wire7:0out3;wire7:0out4;ram8m ram1(.address(address9:0), .data(data), .wen(wen), .ren(ren), .clk(clk), .en(address11:10=2b00), .outdata(out1);ram8m ram2(.address(address9:0), .data(data), .wen(wen), .ren(ren), .clk(clk), .en(address11:10=2b01), .outdata(out2);ram8m ram3(.address(address9:0), .data(data), .wen(wen), .ren(ren), .clk(clk), .en(address11:10=2b10), .outdata(out3);ram8m ram4(.address(address9:0), .data(data), .wen(wen), .ren(ren), .clk(clk), .en(address11:10=2b11), .outdata(out4);always (en or address11:10)begin if(en) begin case(address11:10) 0:outdata = out1; 1:outdata = out2; 2:outdata = out3; 3:outdata = out4; endcase endendendmodulemodule ram8m( input 9:0 address, input 7:0 data, input ren, input wen, input clk, input en, output reg 7:0 outdata ); reg 3:0 sto

    注意事项

    本文(数字电路实验报告.doc)为本站会员(rrsccc)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




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

    三一文库
    收起
    展开