已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西安邮电大学VERILOG课程实验报告院系电子工程学院专业班级电子10班学号(17)姓名2222013年6月8日实验一门级建模1实验内容(1)使用NAND门编写双输入端的与门,或门及非门MY_OR,MY_AND和MY_NOT门构造一个双输入端的XOR门,其功能是计算ZXYXY,其中X和Y为输入,Z为输出;编写激励模块对X和Y的四种输入组合进行测试仿真。(2)本章中的一位全加器使用乘积项之和的形式可以表示为SUMABC_INABC_INABC_INABC_INC_OUTABBC_INAC_IN其中A,B和C_IN为输入,SUM和C_OUT为输出;只使用与门、或门、非门实现一个一位全加器,写出VERILOG描述,限制是每个门最多有四个输入端。编写激励模块对功能进行检查,并对全部的输入组合进行测试。2实验目的(1)掌握门基本类型,并学习VERILOG提供的门级原语(2)理解门的实例引用(3)熟悉门级建模的一般步骤(4)熟悉编程软件3实验步骤(1)先根据题目要求构建MY_OR,MY_AND,MY_NOT;其次根据所设计的门来设计MY_XOR,并且编写激励对所设计的进行验证实验代码及仿真激励代码如下MODULEMYXOROUT,X,YOUTPUTOUTINPUTX,YWIREX,YWIREY0,Y1,Y2,Y3MY_NOTMYNOT0Y0,X,1MY_NOTMYNOT1Y1,Y,1MY_ANDMYAND0Y2,Y,Y0MY_ANDMYAND1Y3,Y1,XMY_ORMYOR0OUT,Y2,Y3ENDMODULEMODULEMY_OROUT,IN0,IN1OUTPUTOUTINPUTIN0,IN1WIREY0,Y1NANDY0,IN0,1NANDY1,IN1,1NANDOUT,Y0,Y1ENDMODULEMODULEMY_ANDOUT,IN0,IN1OUTPUTOUTINPUTIN0,IN1WIREY0NANDY0,IN0,IN1NANDOUT,Y0,1ENDMODULEMODULEMY_NOTOUT,IN0,OUTPUTOUTINPUTIN0NANDOUT,IN0,1ENDMODULEMODULESTIMULUSREGIN0,IN1WIREOUTMYXORMYXOR1OUT,IN0,IN1INITIALBEGININ00IN101DISPLAY“IN0B,IN1B,OUTBN“,IN0,IN1,OUTIN00IN111DISPLAY“IN0B,IN1B,OUTBN“,IN0,IN1,OUTIN01IN101DISPLAY“IN0B,IN1B,OUTBN“,IN0,IN1,OUTIN01IN111DISPLAY“IN0B,IN1B,OUTBN“,IN0,IN1,OUTENDENDMODULE其仿真结果及波形图如下(2)实验二的代码如下MODULEFULLADDSUM,C_OUT,A,B,C_INOUTPUTSUM,C_OUTINPUTA,B,C_INWIREY0,Y1,Y2,Y3,Y4,Y5,Y6,Y7,Y8,Y9NOTY0,ANOTY1,BNOTY2,C_INANDY3,A,B,C_INANDY4,Y0,B,Y2ANDY5,Y0,Y1,C_INANDY6,A,Y2,Y1ORSUM,Y3,Y4,Y5,Y6ANDY7,A,BANDY8,B,C_INANDY9,A,C_INORC_OUT,Y7,Y8,Y9ENDMODULEMODULESTIMULUSREGIN0,IN1,IN2WIRESUM,C_OUTFULLADDFULLADD1SUM,C_OUT,IN0,IN1,IN2INITIALBEGININ00IN10IN201DISPLAY“IN0BIN1BIN2BSUMBC_OUTBN“,IN0,IN1,IN2,SUM,C_OUTIN00IN10IN211DISPLAY“IN0BIN1BIN2BSUMBC_OUTBN“,IN0,IN1,IN2,SUM,C_OUTIN00IN11IN201DISPLAY“IN0BIN1BIN2BSUMBC_OUTBN“,IN0,IN1,IN2,SUM,C_OUTIN00IN11IN211DISPLAY“IN0BIN1BIN2BSUMBC_OUTBN“,IN0,IN1,IN2,SUM,C_OUTIN01IN10IN201DISPLAY“IN0BIN1BIN2BSUMBC_OUTBN“,IN0,IN1,IN2,SUM,C_OUTIN01IN10IN211DISPLAY“IN0BIN1BIN2BSUMBC_OUTBN“,IN0,IN1,IN2,SUM,C_OUTIN01IN11IN201DISPLAY“IN0BIN1BIN2BSUMBC_OUTBN“,IN0,IN1,IN2,SUM,C_OUTIN01IN11IN211DISPLAY“IN0BIN1BIN2BSUMBC_OUTBN“,IN0,IN1,IN2,SUM,C_OUTENDENDMODULE仿真结果及波形如下4实验中遇到的问题及解决方法(1)因为是第一次做实验,所以首先得熟悉编程软件MODESIM的使用的过程中就出现了问题,简单的编程之后进行仿真的时候找不到WORK文件,最后发觉自己使用软件时出现了错误,在整个过程中要遵循以下流程新建工程新建VERILOG文件编程保存编译仿真。(2)端口定义的时候和后面实例化的过程端口顺序一定要一一对应5心得体会在该实验中我第一次接触到了VERILOG语言的应用,并且基本掌握了MODESIM的基本应用,第一次实验后,我发觉这样的实验是很重要的,这是课本知识和实际相结合的过程,所以这个非常具有使用价值,从正面来让我们了解和验证我们的思想是否正确。同时将课本所学知识引用到实验中也用一定的差距,过程中一定要细心才能完成这些,是一种对课本知识的最直接的理解。实验二数据流建模1实验内容一个同步计数器可以使用JK触发器来设计。设计一个同步计数器,其逻辑图和JK触发器的逻辑图已给,清零信号CLEAR低电平有效,输入数据在时钟信号CLOCK的上升沿被锁存,触发器在CLOCK的下降沿输出;当COUNT_ENABLE信号为低电平时停止计数。写出同步计数器的VERILOG描述和激励模块,在激励模块中使用CLEAR和COUNT_ENABLE对计数器进行测试,并显示输出数Q302实验目的1学习连续赋值语句ASSIGN的使用,了解对于连续赋值语句的限制以及隐式连续赋值语句。(2)掌握数据流结构对实际的数字电路建模。3实验步骤(1)实验代码如下MODULECOUNTERQ,CLEAR,CLOCK,COUNT_ENABLEOUTPUT30QINPUTCLEAR,CLOCK,COUNT_ENABLEWIREY0,Y1,Y2ASSIGNY0Q0ASSIGNY1Y0ASSIGNY2Y1JK_FFJK1Q0,CLOCK,CLEAR,COUNT_ENABLE,COUNT_ENABLEJK_FFJK2Q1,CLOCK,CLEAR,Y0,Y0JK_FFJK3Q2,CLOCK,CLEAR,Y1,Y1JK_FFJK4Q3,CLOCK,CLEAR,Y2,Y2ENDMODULEMODULEJK_FFQ,CLOCK,CLEAR,J,KOUTPUTQINPUTCLOCK,CLEAR,J,KWIREA,B,C,ABAR,YBAR,Y,D,CBAR,QBARASSIGNCBARCLOCKASSIGNAQBARASSIGNBCLOCKASSIGNYAASSIGNYBARCLEARASSIGNCYASSIGNDCBARASSIGNQCASSIGNQBARQENDMODULE/TIMESCALE1NS/1PSMODULESTIMULUSREGCLOCK,CLEAR,COUNT_ENABLEWIRE30QINITIALMONITORTIME,“QBCLEARDCLOCKDCOUNT_ENABLED“,Q30,CLEAR,CLOCK,COUNT_ENABLECOUNTERC1Q,CLEAR,CLOCK,COUNT_ENABLEINITIALBEGINCLEAR1B05CLEAR1B1ENDINITIALBEGINCOUNT_ENABLE1B1ENDINITIALBEGINCLOCK1B0FOREVER5CLOCKCLOCKENDENDMODULE实验结果及波形4实验中遇到的问题及解决方法(1)连续赋值语句的左值必须是一个标量或向量线网,或者是标量或向量线网的并接,而不能是向量或向量寄存器。同时为了保证其使用的正确性,最好将每一个每一个连续赋值语句都用ASSIGN,虽然一个ASSIGN可以连续赋值多个。(2)对于在自己所写的实例引用中未使用到的端口有两中处理方法A在定义端口变量的时候可以将未用到的端口不进行定义;B在实例引用的时候将其悬空。一般用第二种方法,在这里为了保持电路的完整性,所以其实际电路的端口都要在端口定义中体现出来。5心得体会在这次实验中要注意数据流和门级建模的差别,由于受到上一章的门级建模的影响,在设计该实验的时候,我习惯性的使用了门级建模中的一些语言习惯。同时在该实验中第一次用到FOREVER语句,这个关键字在应用时没有什么太大问题,但在仿真的时候,一定要有仿真时间的限定,不然会出现一些故障。实验三行为级建模1实验内容使用CASE语句设计八功能的算术运算单元,其输入信号A和B均为4位,功能选择SELECT为3位,输出OUT为5位。算术单位ALU所执行的操作与SELECT信号有关,具体关系见下表,忽略输出结果的上溢和下溢的位。2实验目的(1)使用ALWAYS和INITIAL,并了解其在行为级建模中的重要性(2)理解行为级建模中基于延迟的时序控制机制(3)知道如何在行为级建模中使用电平敏感的时序控制机制(4)使用CASE等语句3实验步骤(1)实验代码MODULEEIGHT_INPUT_ALUOUT,A,B,SELECTOUTPUT40OUTINPUT30A,BINPUT20SELECTREG40OUTALWAYS(AORBORSELECTBEGINSELECT信号功能3B000OUTA3B001OUTAB3B010OUTAB3B011OUTA/B3B100OUTAB3B101OUTA13B111OUTAB大小幅度比较)CASESELECT3B000OUTA3B001OUTAB3B010OUTAB3B011OUTA/B3B100OUTAB3B101OUTA13B111OUTABDEFAULTOUT5DXENDCASEENDENDMODULEMODULESTIMULUSREG30A,BREG20SELECTWIRE40OUTEIGHT_INPUT_ALUA1OUT,A,B,SELECTINITIALBEGINMONITORTIME,“OUTBSELECTB“,OUT,SELECTENDINITIALBEGINA4B1101B4B0010SELECT3B000FOREVER5SELECTSELECT1ENDENDMODULE2实验结果及波形图如下3实验中遇到的问题及解决方法该实验中用到CASE语句,在时序边沿敏感电路中用该语句的时候一定要用DEFAULT,同时ENDCASE不能丢。4心得体会这该实验中了解到了INITIAL语句,该语句是从仿真0时刻开始执行,同时在整个仿真过程中执行一次,并且是各自独立的,一般的使用BEGIN和END将他们组合成一个块语句;还用就是不要在同一个ALWAYS块中混合使用阻塞和非阻塞赋值语句。实验四函数1实验内容设计一个实现8位ALU功能的函数,其输入为两个4位操作数变量A和B,以及一个3位的选择信号SELECT,输出为5位变量OUT,具体关系见下表。不考虑计算结果上溢和下溢。2实验目的(1)理解定义函数所需的条件,学会函数的声明和调用(2)了解和掌握函数的建立和应用(3)理解函数和任务的区别3实验步骤(1)实验代码MODULEEIGHT_ALUOUT,SELECT,A,BOUTPUT40OUTREG40OUTINPUT20SELECTINPUT30A,BALWAYSSELECTBEGINOUTALUSELECT,A,BSELECT信号功能3B000OUTA3B001OUTAB3B010OUTAB3B011OUTA/B3B100OUTAB3B101OUTA13B111OUTAB大小幅度比较)ENDFUNCTION40ALUINPUT20SELECTINPUT30A,BBEGINCASESELECT3B000ALUA3B001ALUAB3B010ALUAB3B011ALUA/B3B100ALUAB3B101ALUA13B111ALUABDEFAULTALU0ENDCASEENDENDFUNCTIONENDMODULEMODULESTIMULUSREG30AREG30BREG20SELECTWIRE40OUTEIGHT_ALUALU1OUT,SELECT,A,BINITIALBEGINMONITORTIME,“AB,BB,SELECTB,OUTBN“,A,B,SELECT,OUTENDINITIALBEGINA4B1101B4B1011SELECT4B000FOREVER5SELECTSELECT1400FINISHENDENDMODULE(2实验结果及波形(3结果分析4实验中遇到的问题及解决方法(1)函数声明要单独用FUNCTIONS和ENDFUNCTION进行声明,同时还要注意在子程序内不能含有延迟、时序或控制结构;只有一个返回值;至少有一个输入变量;没有输出或双向变量;不含有非阻塞赋值语句。(2)函数的返回值就是函数名,所以要保证函数返回值和函数名一致5心得体会在学习以前很少接触的东西的时候一定要将多看看一些例子,仔细看懂怎么应用,然后自己才懂得怎么用,在这之前我很少用函数,即使是在平常的C语言编程中也是很少使用,所以刚接触到这个的时候,根本不知道怎么写,在网上看了一些例子后渐渐的熟悉了函数的应用。实验四使用VERILOGHDL进行逻辑综合1实验内容使用同步有限状态自动机方法设计一个电路,它的引脚IN接受一位的输入流。每当检测到馍10101时,输出引脚MATCH被赋值为高电平。RESET引脚以同步方法初始化电路。输入引脚CLK用于给电路提供时钟信号。使用身边现有的任何工艺综合该电路。优化电路。使其达到最快速度。把同样的激励应用到RTL和门级网表上,比较它们的输出。2实验目的3实验步骤(1)需求分析(2)实验代码MODULEFSMMATCH,RESET,IN,CLKOUTPUTMATCHINPUTRESETINPUTIN,CLKREGMATCHPARAMETERST00,ST11,ST22,ST33,ST44REG20P_START,N_STARTALWAYSNEGEDGECLKIFRESETP_START0ELSEP_STARTN_STARTALWAYSP_STARTORINBEGINMATCH0CASEP_STARTST0IFINBEGINN_START1ENDELSEBEGINN_START0ENDST1IFINBEGINN_START2ENDELSEBEGINN_START1ENDST2IFINBEGINN_START3ENDELSEBEGINN_START0ENDST3IFINBEGINN_START4ENDELSEBEGINN_START1ENDST4IFINBEGINMATCH1N_START1ENDELSEBEGINN_START0ENDDEFAULTN_START0ENDCASEENDENDMODULE/TIMESCALE100NS/1NSMODULESTIMULUSREGIN,CLKWIREMATCHREGRESETFSMF1MATCH,RESET,IN,CLKINITIALBEGINCLK0RESET1IN0NEGEDGECLKRESET0POSEDGECLKIN0POSEDGECLKIN1POSEDGECLKIN0POSEDGECLKIN1POSEDGECLKIN0POSEDGECLKIN1POSED
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年首都医科大学附属北京天坛医院医护人员招聘考试备考试题及答案详解
- 2026年青岛市立医院医护人员招聘考试参考试题及答案详解
- (2026年)院科两级诊疗质量监督管理制度
- 2026年西安市第一医院医护人员招聘笔试参考试题及答案详解
- 2026年镇江市中医院医护人员招聘笔试参考试题及答案详解
- 2026年武汉市中西医院结合医院医护人员招聘考试备考试题及答案详解
- 2026年辽宁中医药大学附属医院医护人员招聘考试备考试题及答案详解
- (2026年)小学教研工作计划
- 2026年六安市人民医院医护人员招聘考试参考题库及答案详解
- 2026年中国人民解放军总医院第七医学中心附属八一儿童医院医护人员招聘考试参考题库及答案详解
- 2026年广东省广州市八年级地生会考考试题库(附含答案)
- 电厂设备维护部定期工作规定培训课件
- 2025山东威海环翠文旅发展集团有限公司招聘笔试及笔试历年参考题库附带答案详解
- 2026年党建基础考试题及答案
- 2026年一级消防工程师继续教育试题及答案
- 预制构件裂缝修补施工工艺流程
- 2026年高考英语试题评析
- 2026年湖北十堰市中考英语试卷及答案
- 重庆市2026届高三学业质量调研抽测(高考二模)英语试卷
- 2026年辽宁沈阳市-中考模拟试卷英语(含答案)
- 2026年历史街区老旧建筑消防改造技术案例
评论
0/150
提交评论