实验一 Verilog HDL语法及ModelSim仿真_第1页
实验一 Verilog HDL语法及ModelSim仿真_第2页
实验一 Verilog HDL语法及ModelSim仿真_第3页
全文预览已结束

下载本文档

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

文档简介

可编程逻辑器件实验实验指导手册实验一 Verilog HDL语法及ModelSim仿真【实验目的】通过实验,掌握可编程逻辑器件及其应用课上讲过的如下内容:1. 使用ModelSim仿真软件复习Verilog HDL基本语法、仿真指令;2. 掌握组合逻辑、时序逻辑的Verilog HDL代码风格;3. 学会编写testbench(测试向量)代码,能熟练使用testbench对module进行测试,摆脱以前形成的用波形测试电路的惯性。【实验方法】温习课件上Verilog HDL语法、ModelSim软件操作介绍部分,按照实验手册要求,在ModelSim平台下完成Verilog HDL语言实践。(ModelSim完整的帮助在软件主菜单:Help-SE Documentation-PDF Bookcase或Info Hub-ModelSim SE Users Manual.pdf中。)【考核方法】实验完成后,将设计文件、软件输出结果、仿真波形等整理成实验报告(不用贴全部代码,选几段自己满意的代码即可)。课程结束后,四个实验报告装订好封皮,一起上交,时间截止到5月10日。【实验内容】一、ModelSim仿真平台搭建1. 安装Mentor ModelSim SE 10.1b软件,配置License;2. 新建空白工程,将被测的组合逻辑模块mux.v与测试向量tstmux.v加入工程,体会测试向量模块如何产生输入激励和查看输出信号;3. 对模块进行测试,得到仿真波形,熟悉ModelSim各窗口功能和操作流程;二、复习Verilog HDL语法1. 复习算术及逻辑运算符语法:将讲义第5节各段代码(P57P66)依次放进ModelSim工程,进行仿真,查看输出结果,比较其是否与期望值相符;2. 复习阻塞与非阻塞赋值语法,将讲义第6节的各段代码改写成完整模块,放进ModelSim工程中仿真,查看输出结果;3. 复习仿真系统任务函数,将讲义第7节的各模块放进ModelSim进行仿真,查看仿真结果,判断是否与期望值相符;三、设计实践设计一个闰年判断模块,4位数的年份以压缩BCD码的形式存放在两个字节中,设计完成后编写测试向量对闰年模块进行测试,测试向量要覆盖闰年的几种类型。后面附了一个闰年判断模块供参考,请先独立思考。四、安装XILINX ISE软件因为ISE软件体积巨大,这次做实验的同时,把下次实验课要用到的ISE Design Suite 14.4软件在后台装好。实验室机器已经安装了ISE 12.2,但有些机器上软件运行有问题,先检查一下。附:1. mux.v文件内容:module mux(out, a, b, sel);input a, b, sel;output out;reg out;always (a or b or sel)if (!sel) out = a;else out = b;endmodule2. tstmux.v文件内容/include ”mux2.v”module tstmux;reg ain, bin, sel_in;reg clock;wire outw;initialbegin/初始化寄存器变量 ain = 0; bin = 0; sel_in = 0; clock = 0;endalways #50 clock = clock; /产生周期100个单位时间的时钟信号clockalways (posedge clock)begin ain = $random %2; /$系统函数 #3 bin = $random %2;endalways #10000 sel_in = ! sel_in; /产生周期10000仿真单位时间的选通信号变化mux m(.out(outw), .a(ain), .b(bin), .sel(sel_in); /模块实例化,连接端口endmodule;3. 闰年计算的Verilog HDL代码module leapyear(is, y3,y2,y1,y0); /BCD, year=y3*1000+y2*100+y1 *10+y0 input 3:0y3,y2,y1,y0; output is; reg is; always (y3 or y2 or y1 or y0) begin /mn: m=1 n=2/6; m=2 n=0/4/8 if (y30=1b1) &(y2=4b0010)|(y2=4b0110) & (y1=4b0000) & (y0=4b0000) /400,m=odd is = 1b1; else if (y30=1b0) &(y2=4b0)|(y2=4b0100)|(y2=4b1000) & (y1=4b0000) & (y0=4b0000)/400,m=even is = 1b1; else if (y10=1b1) &(y0=4b0010)|(y0=4b0110) /4 but not 100 is = 1b1; else if (y10=1b

温馨提示

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

评论

0/150

提交评论