写简单的tb(testbench)文件来测试之前的FSM控制的LED
先上我之前写的状态机控制的led代码led_test.v
module led_test(clk,led_out);
input clk;
output reg[:] led_out; initial
begin
led_out='b0000;
end reg[:] state='b0000;
reg[:] timer='d0; parameter state_0='b0000;
parameter state_1='b0001;
parameter state_2='b0010;
parameter state_3='b0100;
parameter state_4='b1000; always@(posedge clk)
begin case(state) state_0:
if(timer>='d9999_9999)
begin
state<=state_1;
led_out<=state_1;
timer<='d0;
end
else
begin
state<=state;
led_out<=led_out;
timer=timer+'d1;
end state_1:
if(timer>='d9999_9999)
begin
state<=state_2;
led_out<=state_2;
timer<='d0;
end
else
begin
state<=state;
led_out<=led_out;
timer=timer+'d1;
end state_2:
if(timer>='d9999_9999)
begin
state<=state_3;
led_out<=state_3;
timer<='d0;
end
else
begin
state<=state;
led_out<=led_out;
timer=timer+'d1;
end state_3:
if(timer>='d9999_9999)
begin
state<=state_4;
led_out<=state_4;
timer<='d0;
end
else
begin
state<=state;
led_out<=led_out;
timer=timer+'d1;
end state_3:
if(timer>='d9999_9999)
begin
state<=state_4;
led_out<=state_4;
timer<='d0;
end
else
begin
state<=state;
led_out<=led_out;
timer=timer+'d1;
end state_4:
if(timer>='d9999_9999)
begin
state<=state_0;
led_out<=state_0;
timer<='d0;
end
else
begin
state<=state;
led_out<=led_out;
timer=timer+'d1;
end default:
state<=state_0; endcase
end endmodule
然后下面是我写的一个简陋的tb文件 led_test_tb.v
`timescale 1ns/1ps
module led_test_tb();
reg clk;
wire[:] led_out;
led_test a (
.clk(clk),
.led_out(led_out)
); initial
begin
clk=;
end initial
begin
clk=;
forever
# clk=~clk;
end endmodule
但是今天折腾了半天仍然没有输出正确的波形图,只有激励波形,改天接着修改。下面是初次调出的波形图:
马上要考信号与系统了,我还得滚去复习,还要复习考研,抽空学这个,虽然累,但是乐啊,剩下的仿真波形错误我下次再来改吧。
写简单的tb(testbench)文件来测试之前的FSM控制的LED的更多相关文章
- 用C#Winform写个简单的批量清空文件内容和删除文件的小工具
用C#Winform写个简单的批量清空文件内容和删除文件的小工具 本文介绍这个简单得不能再简单的小项目.做这个项目,有以下目的. 1 当然是做个能用的工具 2 学习使用Github 关于用VS2013 ...
- Testbench文件编写纪要(Verilog)
之前在使用Verilog做FPGA项目中.以及其他一些不同的场合下,零散的写过一些练手性质的testbench文件,开始几次写的时候,每次都会因为一些基本的东西没记住.写的很不熟练,后面写的时候稍微熟 ...
- robotium—只有apk文件的测试
把ppt的内容总结一下,并把问题说明一下: 把基本步骤搞出来,用notepad的程序吧,直接安装apk,就当做是不知道源码就好啦! 直接用自己的手机上就行啦!! 一.重签名: 步骤: 1.直接运行re ...
- FFmpeg命令行工具和批处理脚本进行简单的音视频文件编辑
FFmpeg_Tutorial FFmpeg工具和sdk库的使用demo 一.使用FFmpeg命令行工具和批处理脚本进行简单的音视频文件编辑 1.基本介绍 对于每一个从事音视频技术开发的工程师,想必没 ...
- 为初学者写ORM,ORM的原理及测试案例
提纲 一.什么是ORM.二.反射以及Attribute在ORM中的应用.三.创建一个数据库表和表对应的实体model.四.实体model如何映射出数据库表.五.组合ORM映射生成insert语句.六. ...
- 【JMeter】JMeter进行简单的数据库(mysql)压力测试
JMeter进行简单的数据库(mysql)压力测试 1.点击测试计划,再点击“浏览”,把JDBC驱动添加进来: 注:JDBC驱动一般的位置在java的安装地址下,路径类似于: \java\jre ...
- Shell 命令行,写一个自动整理 ~/Downloads/ 文件夹下文件的脚本
Shell 命令行,写一个自动整理 ~/Downloads/ 文件夹下文件的脚本 在 mac 或者 linux 系统中,我们的浏览器或者其他下载软件下载的文件全部都下载再 ~/Downloads/ 文 ...
- ROS Learning-010 beginner_Tutorials 编写简单的启动脚本文件(.launch 文件)
ROS Indigo beginner_Tutorials-09 编写简单的启动脚本文件 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubuntu 14.0 ...
- 关于FAT32分区的U盘4GB文件的测试
关于FAT32分区的U盘4GB文件的测试 很多人都知道FAT32的分区,单文件大小不能超过4GB,关于这个问题就来测测看. FAT32最大文件大小为2的32次方,也就是4294967296 Byte, ...
随机推荐
- 怎样终止HTTP请求
使用 xhr.abort() var xhr = new XMLHttpRequest(); xhr.open('GET', 'http://www.example.com/page.php', tr ...
- c# 粘贴复制
复制 1. 复制 Clipboard.SetText("123456"); Clipboard.SetImage(Image img); Clipboard.SetAudio(Sy ...
- 简要了解web安全之sql注入
什么是sql注入? 通俗来讲就是通过 将可执行sql语句作为参数 传入查询sql 中,在sql编译过程中 执行了传入进来的恶意 sql,从而 得到 不应该查到或者不应该执行的sql语句,对网站安全,信 ...
- Scala语言基础
1. Scala语言的特点 a. 多范式编程语言,面向对象(抽象.封装)和函数式(过程.结果)编程 b. 代码简洁 ==>可读性较差 c. 代码会被变异成Java字节码,运行在JVM上 2. S ...
- Delphi 方法指令字
- cursor:not-allowed
今天发现了一个鼠标样式:not-allowed,是一个红色圈加一个斜杠,表示禁止的意思,似乎IE ,chrome firefox 都可以正常显示,很好用
- Ubuntu系统---安装Caffe (+OpenCV+Python+CPU-only)
安装配置Ubuntu14.04+Caffe (+OpenCV+Python+CPU-only) 记录 [作者:Wu Ping.时间:20180428.] 本人已经安装很多次的Caffe了:从开始的初探 ...
- sql从n月到m月数据汇总,没有数据,当月显示0
做个备份 -- 按月份统计select date1, MONTHS, createtime, nvl(count2, 0)+count1 from ( SELECT TO_CHAR(ADD_MONTH ...
- mybatis详解(三)
一,动态sql,where,trim,set和foreach parameterType的属性可以不用写 xml文件sql的书写 <select id="queryByParams&q ...
- Linux的.a、.so和.o文件及链接时的命名
在说明Linux的.a..so和.o文件关系之前,先来看看windows下obj,lib,dll,exe的关系 windows下obj,lib,dll,exe的关系 lib是和dll对应的.lib是静 ...