【数字电路与系统】【北京航空航天大学】实验:时序逻辑设计——三色灯开关(三)、功能仿真测试

devtools/2024/11/15 8:25:17/

本次实验(一)见博客:【数字电路与系统】【北京航空航天大学】实验:时序逻辑设计——三色灯开关(一)、实验指导书

本次实验(二)见博客:【数字电路与系统】【北京航空航天大学】实验:时序逻辑设计——三色灯开关(二)、需求分析和系统设计

说明:本次实验的代码使用verilog编写,文章中为阅读方便,故采用matlab代码格式。

2.3、功能仿真测试

2.3.1、测试程序设计
//mode_run模块:
因为仿真本来就是理想信号,所以需要去掉debounce模块进行仿真module test2;// Inputsreg clk;reg rst;reg key0;reg key1;// Outputswire [3:0] led;// Instantiate the Unit Under Test (UUT)mode_run_1 uut (.clk(clk), .rst(rst), .key0(key0), .key1(key1), .led(led));initial begin// Initialize Inputsclk = 0;rst = 0;key0 = 0;key1 = 0;// Wait 100 ns for global reset to finish#100;// Add stimulus hereend#10 clk = ~clk;#1000 key0 = ~key0;	
endmodule
//mode_demo模块:
因为仿真本来就是理想信号,所以需要去掉debounce模块进行仿真
module mode_demo_1_sim;// Inputsreg clk;reg rst;reg key_0;reg key_1;// Outputswire dp;wire [6:0] light;wire [1:0] com;// Instantiate the Unit Under Test (UUT)mode_demo_1 uut (.clk(clk), .rst(rst), .key_0(key_0), .key_1(key_1), .dp(dp), .light(light), .com(com));initial begin// Initialize Inputsclk = 0;rst = 0;key_0 = 0;key_1 = 0;// Wait 100 ns for global reset to finish#100;rst = 1;// Add stimulus hereendalways #10 clk = ~clk;always #10000 key_0 = ~key_0;
endmodule
//Uart_top模块:module uart_top_tb;// Inputsreg Sys_CLK;reg Sys_RST;reg [1:0] Key_In;// Outputswire Signal_Tx;// Instantiate the Unit Under Test (UUT)Uart_Top uut (.Sys_CLK(Sys_CLK), .Sys_RST(Sys_RST), .Key_In(Key_In), .Signal_Tx(Signal_Tx));initial begin// Initialize InputsSys_CLK = 0;Sys_RST = 1;Key_In = 0;// Wait 100 ns for global reset to finish#100;Sys_RST = 0;#100;Sys_RST = 1;#100000000;Key_In = 2'b01;#100000000;Key_In = 2'b00;#100000000;Key_In = 2'b01;#150000000;Key_In = 2'b00;#100000000;Key_In = 2'b01;#200000000;Key_In = 2'b10;#100000000;Key_In = 2'b00;// Add stimulus hereendalways #10 Sys_CLK = ~Sys_CLK;endmodule
2.3.2、功能仿真过程

//mode_run模块:

在这里插入图片描述

图 2 mode_run仿真

//mode_demo模块:

在这里插入图片描述

图 3 mode_demo仿真

//Uart_top模块:

在这里插入图片描述

图 4 Uart_top仿真

2.3.2、实验关键结果及其解释

//mode_run模块:
在mode_run仿真过程中,在key0置1过后,状态机进入白光—灭—日光—灭—黄光—灭的循环,仿真结果符合实验需求。
//mode_demo模块:
在mode_demo仿真过程中,在key0置1过后,状态机也进入了白光—灭—日光—灭—黄光—灭的循环,仿真结果符合实验需求。
//Uart_top模块:
在Uart_top模块中,Sw不断变化后,按下Key,将Sw的变化一次发送到Tx显示,仿真符合实验设计要求。

(未完待续)


http://www.ppmy.cn/devtools/15204.html

相关文章

webpack -vite(Rollup )-Gulp (一)

vite基于什么打包 Vite 是一个现代的前端构建工具,它在开发环境中利用浏览器原生的 ES 模块加载机制实现快速启动和热更新,而在生产环境打包时,默认基于 Rollup 进行构建。Rollup 是一个JavaScript 模块打包器,尤其擅长处理 ES 模…

SSTV音频转图片

SSTV工具有很多,这里使用RX-SSTV慢扫描工具 下载安装 RX-SSTV解码软件 下载地址:https://www.qsl.net/on6mu/rxsstv.htm 一直点下一步,安装成功如下图: 虚拟声卡e2eSoft 由于SSTV工具是根据音频传递图片信息,正常解法需要一…

go版本1.16.5 运行项目出现undefined: math.MaxInt报错

问题描述 go版本 go1.16.5 项目引用了 包go-sqlite3 v1.14.17 github.com/mattn/go-sqlite3 v1.14.17运行报错 # github.com/mattn/go-sqlite3 D:\GoPATH\pkg\mod\github.com\mattn\go-sqlite3v1.14.17\sqlite3_opt_serialize.go:41:26: undefined: math.MaxInt原因分析&…

npm常用的命令大全(2024-04-21)

nodejs中npm常见的命令 npm主要是node包管理和发布的工具。 npm官网网址:npm | Homehttps://www.npmjs.com/官网英文文档: npm DocsDocumentation for the npm registry, website, and command-line interfacehttps://docs.npmjs.com/about-npm官网中文文…

【java毕业设计】 基于Spring Boot+mysql的课程作业管理系设计与实现(程序源码)-课程作业管理系

基于Spring Bootmysql的课程作业管理系设计与实现(程序源码毕业论文) 大家好,今天给大家介绍基于Spring Bootmysql的课程作业管理系设计与实现,本论文只截取部分文章重点,文章末尾附有本毕业设计完整源码及论文的获取方…

Java数据类型和变量

一.字面常量 常量即在程序运行期间不变的的量。 字面常量的分类: 1.字符串常量:“内容”,双引号里的内容; 2.整形常量:100,像这样的; 3.浮点数常量:1.23,直接写的浮…

Laravel 6 - 第十章 路由

​ 文章目录 Laravel 6 - 第一章 简介 Laravel 6 - 第二章 项目搭建 Laravel 6 - 第三章 文件夹结构 Laravel 6 - 第四章 生命周期 Laravel 6 - 第五章 控制反转和依赖注入 Laravel 6 - 第六章 服务容器 Laravel 6 - 第七章 服务提供者 Laravel 6 - 第八章 门面 Laravel 6 - …

超详细的Maven安装与使用还有内容讲解

文章目录 作用简介模型仓库 安装配置IDEA配置Maven坐标概念主要组成 IDEA创建Maven项目基本使用常用命令生命周期使用坐标导入jar包 注意事项清理maven仓库更新索引依赖 作用 Maven是专门用于管理和构建Java项目的工具,它的主要功能有: 提供了一套标准化…