工程实训报告Modelsim-实验三,时序电路设计(学号显示)

更新时间:2023-10-06 09:35:02 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验项目名称: 时序逻辑电路设计 指导教师: 实验日期:

实验概述: 【实验目的及实验设备】 实验目的: (1) 掌握时序逻辑电路的基本要点。 (2) 掌握时序逻辑电路的静态测试方法,能够进行程序设计。 (3) 学习测试模块的编写,综合和不同层次的仿真。 实验设备及仪器名称: CPU型号: 英特尔 Pentium Dual-Core T4200 @ 2.00GHz 操作系统类型:Windows 7 仿真软件:MAX Plus 2软件、Modelsim SE-64 10.0c 【实验原理及电路图】 单脉冲发生器是一种脉冲宽度可编程的信号发生器,其输出为TTL电平。在输入按键的控制下,产生单次的脉冲,脉冲的宽度由8位的输入数据控制(以下称之为脉宽参数)。由于是8位的脉宽参数,故可以产生255种宽度的单次脉冲。 在目标板上,I0~I7用作脉宽参数输入,PULSE_OUT用做可编程单脉冲输出,而KEY和/RB作为启动键和复位键。 单脉冲发生器的电路图。 实验内容及步骤: 【实验方案】(实验步骤,记录) 1、打开Modelsim SE-64 10.0c软件。 2、建立工程及相应文件,文件名为half_clk.v。 3、编写程序: module half_clk(reset,clk_in,clk_out); input clk_in,reset; output clk_out; reg clk_out; always @(posedge clk_in) begin if(!reset) clk_out=0; else clk_out=~clk_out; end endmodule //测试模块: `timescale le 1ns/100ps `define clk_cycle 50 module half_clk_tb ; reg clk_in ; wire clk_out ; reg reset ; always #`clk_cycle clk_in = ~clk_in; initial begin clk_in = 0; reset = 1; #100 reset = 0; #100 reset = 1; #10000 $stop; end half_clk half_clk ( .clk_in (clk_in ) , .clk_out (clk_out ) , .reset (reset ) ); endmodule 4、进行程序编译,查找错误并修改。 5、输出仿真波形。 【实验结果】(实验波形) 【解答思考题】 组合逻辑电路与时序逻辑电路进行比较如下: 组合逻辑电路的特点是:在任意时刻,电路产生的稳定输出仅与当前时刻的输入有关。时序逻辑电路则不同于它,其特点是:在任意时刻电路产生的稳定输出不仅与当前时刻的输入有关,而且还与电路过去的输入有关。 【小结】(碰到的问题,如何解决,有何体会,改进建议等) 进行测试模块编译时出现错误,即“**Error: C:/altera/72/myproject/half_clk/simulation/modelsim/half_clk_Top.v(6): near \” 解决办法: 在测试模块下,输入时钟为clk_in,而不是clk,所以应该把 clk = ~clk;替换为clk_in=~clk_in;在initial下把clk=0改成clk_in=0;另外,在modelsim下创建testbench的时候,由source——>show language templates可以得到测试模块的模板,只需对输入进行定义和初始化即可解决。 学会了测试模块的编写、编译,其实还远远不够,能够在出现错误的时候找出错误的根源,并且对出现的错误进行修改,这样才能在学习的过程中加深对知识点的理解。 实验成绩:

本文来源:https://www.bwwdw.com/article/bvgd.html

Top