先上我之前写的状态机控制的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的更多相关文章

  1. 用C#Winform写个简单的批量清空文件内容和删除文件的小工具

    用C#Winform写个简单的批量清空文件内容和删除文件的小工具 本文介绍这个简单得不能再简单的小项目.做这个项目,有以下目的. 1 当然是做个能用的工具 2 学习使用Github 关于用VS2013 ...

  2. Testbench文件编写纪要(Verilog)

    之前在使用Verilog做FPGA项目中.以及其他一些不同的场合下,零散的写过一些练手性质的testbench文件,开始几次写的时候,每次都会因为一些基本的东西没记住.写的很不熟练,后面写的时候稍微熟 ...

  3. robotium—只有apk文件的测试

    把ppt的内容总结一下,并把问题说明一下: 把基本步骤搞出来,用notepad的程序吧,直接安装apk,就当做是不知道源码就好啦! 直接用自己的手机上就行啦!! 一.重签名: 步骤: 1.直接运行re ...

  4. FFmpeg命令行工具和批处理脚本进行简单的音视频文件编辑

    FFmpeg_Tutorial FFmpeg工具和sdk库的使用demo 一.使用FFmpeg命令行工具和批处理脚本进行简单的音视频文件编辑 1.基本介绍 对于每一个从事音视频技术开发的工程师,想必没 ...

  5. 为初学者写ORM,ORM的原理及测试案例

    提纲 一.什么是ORM.二.反射以及Attribute在ORM中的应用.三.创建一个数据库表和表对应的实体model.四.实体model如何映射出数据库表.五.组合ORM映射生成insert语句.六. ...

  6. 【JMeter】JMeter进行简单的数据库(mysql)压力测试

    JMeter进行简单的数据库(mysql)压力测试 1.点击测试计划,再点击“浏览”,把JDBC驱动添加进来: 注:JDBC驱动一般的位置在java的安装地址下,路径类似于:    \java\jre ...

  7. Shell 命令行,写一个自动整理 ~/Downloads/ 文件夹下文件的脚本

    Shell 命令行,写一个自动整理 ~/Downloads/ 文件夹下文件的脚本 在 mac 或者 linux 系统中,我们的浏览器或者其他下载软件下载的文件全部都下载再 ~/Downloads/ 文 ...

  8. ROS Learning-010 beginner_Tutorials 编写简单的启动脚本文件(.launch 文件)

    ROS Indigo beginner_Tutorials-09 编写简单的启动脚本文件 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubuntu 14.0 ...

  9. 关于FAT32分区的U盘4GB文件的测试

    关于FAT32分区的U盘4GB文件的测试 很多人都知道FAT32的分区,单文件大小不能超过4GB,关于这个问题就来测测看. FAT32最大文件大小为2的32次方,也就是4294967296 Byte, ...

随机推荐

  1. 使用Golang时遇到的一些坑

    1. [致命]不是所有Panic都能捕获 我们知道Golang给开发人员提供recover()机制,对堆栈异常(panic)进行捕获并自定义其处理逻辑.下面举个例子: 构造一个除0的异常场景: 输出结 ...

  2. 【转】STM32的FSMC详解

    STM32的FSMC真是一个万能的总线控制器,不仅可以控制SRAM,NOR FLASH,NAND FLASH,PC Card,还能控制LCD,TFT. 一般越是复杂的东西,理解起来就很困难,但是使用上 ...

  3. Java通过Socket和动态代理实现简易RPC框架

    本文转自Dubbo作者梁飞大神的CSDN(https://javatar.iteye.com/blog/1123915),代码简洁,五脏俱全. 1.首先实现RpcFramework,实现服务的暴露与引 ...

  4. StoneTab标签页CAD插件 3.1.0

    //////////////////////////////////////////////////////////////////////////////////////////////////// ...

  5. c# winform找窗体

    Application.OpenForms["frm"],一句话就找到窗体

  6. vue 父子组件数据的双向绑定大法

    官方文档说明 所有的 prop 都使得其父子 prop 之间形成了一个 单向下行绑定 父级 prop 的更新会向下流动到子组件中,但是反过来则不行 2.3.0+ 新增 .sync 修饰符 以 upda ...

  7. 【原创】编程基础之Jekins

    Jenkins 2.164.2 官方:https://jenkins.io 一 简介 Build great things at any scale The leading open source a ...

  8. python selenium2 模拟点击+拖动 测试对象 58同城验证码

    #!/usr/bin/python # -*- coding: UTF-8 -*- # @Time : 2019/12/5 17:30 # @Author : shenghao/10347899@qq ...

  9. PHP 手机短信发送验证码

    点击链接加入群[php/web 学习课堂]:https://jq.qq.com/?_wv=1027&k=5645xiw 欢迎大家加入,一起讨论学习 本篇设计的知识点有点多,我会分类将,同学们可 ...

  10. mybatis+oracle 批量插入,若数据库中有则做更新操作

    1.只批量插入: insert into WXPAY_ACCOUNT(id ,out_trade_no ,transaction_id)select SEQ_WXPAY_ACCOUNT.nextval ...