我是靠谱客的博主 激昂蜗牛,最近开发中收集的这篇文章主要介绍【verilog】设计一个测试文件,产生一个周期为2微秒,占空比为3:1的时钟信号,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

〇、前情提要

帮可爱的涛涛看题,顺便复习一下verilog。
在这里插入图片描述

参考:

  1. Verilog测试:TestBench结构
    https://blog.csdn.net/qq_26652069/article/details/96422293
  2. 占空比的故事
    http://www.360doc.com/content/18/0928/00/11935121_790268293.shtml
  3. Verilog仿真时钟产生方法学习
    https://blog.csdn.net/flomingo1/article/details/102676669

一、题目分析

原题

设计一个测试文件,产生一个周期为2微秒,占空比为3:1的时钟信号

测试文件

参考:
Verilog测试:TestBench结构
https://blog.csdn.net/qq_26652069/article/details/96422293

完整的TESTBENCH文件结构

module Test_bench()//一般简单的测试文件无输入输出
信号或变量声明定义
逻辑设计中输入信号在这里对应reg型变量
逻辑设计中的输出信号在这里对应wire型
使用initial或always语句块产生激励
例化猜测是模块UT
监控和比较输出响应
endmodule

周期为2微秒

T=2微秒=2000ns

占空比为3:1

参考:
占空比的故事
http://www.360doc.com/content/18/0928/00/11935121_790268293.shtml

上面这篇文章解释得很不错,小白更容易理解。
占空比就是在一个工作周期内。通电的时间占这个周期的比值,这个周期指的是通电时间和断电时间的和。
在这里插入图片描述

于是我就理解成 高1低3的比例
t=T/4=500ns


二、开写

参考:
Verilog仿真时钟产生方法学习
https://blog.csdn.net/flomingo1/article/details/102676669

自定义占空比的时钟信号:

parameter High_time = 5,Low_time = 20;  
// 占空比为High_time/(High_time+Low_time)  
reg clk;  
always begin  
    clk = 1;  
    #High_time;  
    clk = 0;  
    #Low_time;  
end  

改写后

`timescale 1ns/1ps

module Test_bench;

parameter High_time = 500,Low_time = 1500;  
// 占空比为High_time/(High_time+Low_time)  
reg clk; 

always begin  
        clk = 1;  
        #High_time;  

        clk = 0;  
        #Low_time;  
    
end

endmodule

想当年学数电的时候很喜欢教我们的孙老师,考了高分学得自以为很好(但其实是因为那时候还没搞工程认证,所以很简单),现在辅导学妹看得我一愣一愣的,知道但又不知道,不知道以后还会不会用到。

最后

以上就是激昂蜗牛为你收集整理的【verilog】设计一个测试文件,产生一个周期为2微秒,占空比为3:1的时钟信号的全部内容,希望文章能够帮你解决【verilog】设计一个测试文件,产生一个周期为2微秒,占空比为3:1的时钟信号所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(81)

评论列表共有 0 条评论

立即
投稿
返回
顶部