数字逻辑与EDA设计 实验4-8实验报告.doc_第1页
数字逻辑与EDA设计 实验4-8实验报告.doc_第2页
数字逻辑与EDA设计 实验4-8实验报告.doc_第3页
数字逻辑与EDA设计 实验4-8实验报告.doc_第4页
数字逻辑与EDA设计 实验4-8实验报告.doc_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

. _计算机_学院_网络工程_专业_3_班_组、学号_3111006403_姓名 许树炯 协作者_ 教师评定_实验题目_基于Libra的数字逻辑设计仿真及验证实验_1、 熟悉EDA工具的使用;仿真基本门电路。2、 仿真组合逻辑电路。3、 仿真时序逻辑电路。4、 基本门电路、组合电路和时序电路的程序烧录及验证。5、 数字逻辑综合设计仿真及验证。实验报告1、基本门电路一、实验目的1、了解基于Verilog的基本门电路的设计及其验证。2、熟悉利用EDA工具进行设计及仿真的流程。3、学习针对实际门电路芯片74HC00、74HC02、74HC04、74HC08、74HC32、74HC86进行VerilogHDL设计的方法。二、实验环境Libero仿真软件。三、实验内容1、掌握Libero软件的使用方法。2、进行针对74系列基本门电路的设计,并完成相应的仿真实验。3、参考教材中相应章节的设计代码、测试平台代码(可自行编程),完成74HC00、74HC02、74HC04、74HC08、74HC32、74HC86相应的设计、综合及仿真。4、提交针对74HC00、74HC02、74HC04、74HC08、74HC32、74HC86(任选一个)的综合结果,以及相应的仿真结果。四、实验结果和数据处理1、所有模块及测试平台代码清单/74HC00代码-与非/ 74HC00.vmodule HC00(DataA, DataB,Y); input 3:0DataA,DataB; output 3:0Y; assign Y=(A&B);endmodule/74HC00测试平台代码/ testbench.vtimescale 1ns/1nsmodule testbench(); reg 4:1 a,b; wire 4:1 y;HC00 u1(a,b,y);initial begin a=4b0000;b=4b0001; #10 b=b1; #10 b=b1; #10 b=b1; a=4b1111;b=4b0001; #10 b=b1; #10 b=b1; #10 b=b1; endendmodule/74HC02代码-或非module HC02(A,B,Y); input 4:1A,B; output 4:1Y; assign Y=(A|B);endmodule/74HC04代码-非module HC04(A,Y); input 4:1A; output 4:1Y; assign Y=A;endmodule/74HC08代码-与module HC08(A,B,Y); input 4:1A,B; output 4:1Y; assign Y=A&B;endmodule/74HC32代码-或module HC32(A,B,Y); input 4:1A,B; output 4:1Y; assign Y=A|B;endmodule/74HC86代码-异或module HC86(A,B,Y); input 4:1A,B; output 4:1Y; assign Y=AB;endmodule/门电路测试平台代码/ testbench.vtimescale 1ns/1nsmodule testbench(); reg 4:1 a,b; wire 4:1 y;HC00 test(a,b,y);initial begin a=4b0000;b=4b0001; #10 b=b1; #10 b=b1; #10 b=b1; a=4b1111;b=4b0001; #10 b=b1; #10 b=b1; #10 b=b1; endendmodule2、第一次仿真结果(任选一个门,请注明,插入截图,下同)。(将波形窗口背景设为白色,调整窗口至合适大小,使波形能完整显示,对窗口截图。后面实验中的仿真使用相同方法处理)与非门:3、综合结果(截图)。(将相关窗口调至合适大小,使RTL图能完整显示,对窗口截图,后面实验中的综合使用相同方法处理)与非门:4、第二次仿真结果(综合后)(截图)。回答输出信号是否有延迟,延迟时间约为多少?与非门:输出信号有延迟,延迟时间约为300ps延迟300ps5、第三次仿真结果(布局布线后)(截图)。回答输出信号是否有延迟,延迟时间约为多少?分析是否有出现竞争冒险。与非门:输出信号在开始视延迟3200ps后面延迟4000ps左右由上图分析可以知道,在黄线以右的输出转折点处出现了竞争冒险,总共3次。2、组合逻辑电路一、实验目的1、了解基于Verilog的组合逻辑电路的设计及其验证。2、熟悉利用EDA工具进行设计及仿真的流程。3、学习针对实际组合逻辑电路芯片74HC148、74HC138、74HC153、74HC85、74HC283、74HC4511进行VerilogHDL设计的方法。二、实验环境Libero仿真软件。三、实验内容1、掌握Libero软件的使用方法。2、进行针对74系列基本组合逻辑电路的设计,并完成相应的仿真实验。3、参考教材中相应章节的设计代码、测试平台代码(可自行编程),完成74HC148、74HC138、74HC153、74HC85、74HC283、74HC4511相应的设计、综合及仿真。4、74HC85测试平台的测试数据要求:进行比较的A、B两数,分别为本人学号的末两位,如“89”,则A数为“1000”,B数为“1001”。若两数相等,需考虑级联输入(级联输入的各种取值情况均需包括);若两数不等,则需增加一对取值情况,验证A、B相等时的比较结果。5、74HC4511设计成扩展型的,即能显示数字09、字母af。6、提交针对74HC148、74HC138、74HC153、74HC85、74HC283、74HC4511(任选一个)的综合结果,以及相应的仿真结果。四、实验结果和数据处理1、所有模块及测试平台代码清单/74HC138代码/ decoder.vmodule decoder138 (Din,Enable,Eq); input 2:0 Din; input Enable; output 7:0 Eq; reg 7:0 Eq; wire 2:0Din; integer I;always (Din or Enable) begin if(Enable) Eq=0; else for(I=0;I=7;I=I+1)if(Din=I) EqI=1; else EqI=0; endendmodule/74HC138测试平台代码/ testbench.vtimescale 1ns/1nsmodule testbench; reg 2:0Din; reg enable; wire 7:0dataout;initial #400 $finish; initial begin enable=1; #40 enable=0; endinitial begin repeat(20) #20 dataIn=$random; enddecoder138 test(Din,enable,dataout);endmodule/74HC148代码module encoder148(Din,EO,Dout,EI,GS); input 7:0Din; input EI; output EO; output 2:0Dout; reg EO; reg GS; integer I; always (Din or EI) begin:local if(EI) begin Dout=7; EO=1; GS=1; end else if(Din=16b11111111) begin Dout=7; EO=0; GS=1; end else begin for(I=0;I8;I=I+1) begin if(DinI) begin Dout=I; EO=1; GS=0; end end endendmodule/74HC148测试平台代码timeccale 1ns/10psmodule testbench; reg7:0 in; reg EI; wire2:0 out; wire EO,GS; initial begin in=b00000001; repeat(9) #20 in=in=B) AGEB=1; else AGEB=0; endendmodule/74HC85测试平台代码timescale 1ns/10psmodule testbench; reg 3:0 ina,inb; wire AGEB; comparator_4_a testbench_4_a(ina,inb,AGEB); initial begin ina=0; repeat(20) #20 ina=$random; #20 $finish; end initial begin inb=0; repeat(10) #40 inb=$random; endendmodule/74HC283代码module HC283(A, B,Cin,Sum,Cout); parameter N=4; input N-1:0 A, B; input Cin; output N-1:0 Sum; reg N-1:0 Sum; output Cout; reg Cout; reg N:0 q; always (A or B or Cin) begin:adder integer i; q0=Cin; for(i=0;i=N;i=i+1) begin qi+1=(Ai& Bi)|(Ai&qi)|( Bi&qi); Sumi=Ai Biqi; end Cout=qN; endendmodule/74HC283测试平台代码timescale 1ns/10psmodule testbench; reg 3:0 ina,inb; reg cin; wire 3:0 sum; wire cout; HC283 testbench283(ina,inb,cin,sum,cout); initial begin ina=0; repeat(20) #20 ina=$random; end initial begin inb=0; repeat(10) #40 inb=$random; end initial begin cin=0; #200 cin=1; endendmodule/74HC4511代码module HC4511(A,Seg,LT_N,BI_N,LE); input LT_N,BI_N,LE; input 3:0A; output 7:0Seg; reg 7:0SM_8S; assign Seg=SM_8S; always (A or LT_N or BI_N or LE) begin if(!LT_N) SM_8S=8b11111111; else if(!BI_N) SM_8S=8b00000000; else if(LE) SM_8S=SM_8S; else case(A) 4d0:SM_8S=8b00111111; 4d1:SM_8S=8b00000110; 4d2:SM_8S=8b01011011; 4d3:SM_8S=8b01001111; 4d4:SM_8S=8b01100110; 4d5:SM_8S=8b01101101; 4d6:SM_8S=8b01111101; 4d7:SM_8S=8b00000111; 4d8:SM_8S=8b01111111; 4d9:SM_8S=8b01101111; 4d10:SM_8S=8b01110111; 4d11:SM_8S=8b01111100; 4d12:SM_8S=8b00111001; 4d13:SM_8S=8b01011110; 4d14:SM_8S=8b01111001; 4d15:SM_8S=8b01110001; default:; endcase endendmodule/74HC4511测试平台代码timescale 1ns/10psmodule testbench; reg 3:0 a; reg lt_n,bi_n,le; wire 7:0 seg; HC4511 hc4511(a,seg, lt_n,bi_n,le); initial begin a=0; lt_n=1;bi_n=1;le=0; #30 a=4b0001; #30 a=4b1000; #30 a=4b0111; #30 a=4b1010; #30 a=4b0101; #30 le=1; #30 bi_n=0; #30 lt_n=0; #20; endendmodule2、第一次仿真结果(任选一个模块,请注明)74HC153模块3、综合结果RTL图4、第二次仿真结果(综合后)。回答输出信号是否有延迟,延迟时间约为多少?延迟300ps5、第三次仿真结果(布局布线后)。回答输出信号是否有延迟,延迟时间约为多少?分析是否有出现竞争冒险。延迟5200ps3、时序逻辑电路一、实验目的1、了解基于Verilog的时序逻辑电路的设计及其验证。2、熟悉利用EDA工具进行设计及仿真的流程。3、学习针对实际时序逻辑电路芯片74HC74、74HC112、74HC194、74HC161进行VerilogHDL设计的方法。二、实验环境Libero仿真软件。三、实验内容1、熟练掌握Libero软件的使用方法。2、进行针对74系列时序逻辑电路的设计,并完成相应的仿真实验。3、参考教材中相应章节的设计代码、测试平台代码(可自行编程),完成74HC74、74HC112、74HC161、74HC194相应的设计、综合及仿真。4、提交针对74HC74、74HC112、74HC161、74HC194(任选一个)的综合结果,以及相应的仿真结果。四、实验结果和数据处理1、所有模块及测试平台代码清单/74HC74代码/ 74hc74.vmodule d_ff (Set,Reset,Clk,D,Q);input Set,Reset,Clk,D;output Q;reg Q;always (posedge Clk or negedge Reset or negedge Set)beginif(!Reset)begin if(!Set)Q=D;else Q=1;end else if(!Set) Q=0;endendmodule /74HC74测试平台代码/ 74hc74.vtimescale 1ns/1nsmodule testbench;reg D,Reset,Set,Clk;wire Q;d_ff testbench_dff(D,Clk,Q,Set,Reset);initialbeginClk =0;#400 $finish;endparameter clock_period=20;always#(clock_period/2)Clk=Clk;initialbeginD=0;repeat(20)#20 D=$random;endinitialbeginReset=0;repeat(20)#20 Reset=$random;endinitialbeginSet=0;repeat(20)#20 Set=$random;endendmodule/74HC112代码module jk_ff(J,K,Clk,Q,Qn); input J,K,Clk; output Q,Qn; reg Q; assign Qn=Q; always (posedge Clk) case(J,K) 2b00:Q=Q; 2b01:Q=1b0; 2b10:Q=1b1; 2b11:Q=Q; default:Q=1bx; endcaseendmodule/74HC112测试平台代码timescale 1ns/1nsmodule testbench; reg j,k,Clk; wire Q,Qn; parameter clock_period=20; always #(clock_period/2) Clk=Clk; initial begin j=0;Clk=0; repeat(20) #20 j=$random; end initial begin k=0; repeat(20) #20 k=$random; end initial #300 $finish; jk_ff testbench_jk(j,k,Clk,Q,Qn);endmodule/74HC161代码module HC161(CP,CEP,CET,MRN,PEN,Dn,Qn,TC); input CP; input CEP,CET; output3:0 Qn; input MRN,PEN; input3:0 Dn; output TC; reg3:0 qaux; reg TC; always (posedge CP) begin if(!MRN) qaux=4b0000; else if(!PEN) qaux=Dn; else if(CEP&CET) qaux=qaux+1; else qauxBIA=BIABA=BAB1XXX0XXXXXX0XXX1XXXXXX11XX10XXXXX00XX01XXXXX101X100XXXX000X001XXXX11011100XXX00100011XXX1101110100001000100001110111011000000000010111111111001注:X为任意状态表4-11 74HC283输入输出状态进位输入4位加数输入4位被加数输入输出加法结果和进位CinA4A3A2A1B4B3B2B1CoutS4S3S2S1000000110111111111001110010101000110101010111110000111010011001表4-12 74HC4511输入输出状态使能输入数据输入译码输出LEDCBAabcdefg0XXXXXX10XXXXX1100000110000111000101100011110010011001011100110110011111010001101001110101011010111101100110110111011101101111注:X为任意状态表4-13 74HC74输入输出状态输入输出置位输入复位输入CPD1Q01XX10XX11011100XX注:X为任意状态表4-14 74HC112输入输出状态输入输出置位输入复位输入11J1K1Q01XXX10XXX11111101111000XXX注:X为任意状态表4-15 74HC194输入输出状态输入输出模式串行CP并行S1S0DSRDSLD0D1D2D3Q0n+1Q1n+1Q2n+1Q3n+10XXXXXXXXX111XXD0D1D2D3100XXXXXX1010XXXXX1011XXXXX110X0XXXX110X1XXXX注:X为任意状态表4-16 74HC161输入输出状态输入输出CPCEPCETD3D2D1D0Q3Q2Q1Q0TC0XXXXXXXX1XX000001110D3D2D1D01111XXXX1X0X1XXXX1XX01XXXX注:X为任意状态5、数字逻辑综合设计仿真及验证一、实验目的1、进一步熟悉利用EDA工具进行设计及仿真的流程。2、熟悉利用EDA工具中的图形化设计界面进行综合设计。3、熟悉芯片烧录的流程及步骤。4、掌握分析问题、解决问题的综合能力,通过EDA工具设计出能解决实际问题的电路。二、实验环境1、Libero仿真软件。2、DIGILOGIC-2011数字逻辑及系统实验箱。3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论