一、三角波发生器逻辑设计

所需软件

Verilog编程软件:Lattice Diamond(3.11.0.396.4_Diamond_x64)

Verilog仿真软件:ModelSim SE-64 10.2c(modelsim-win64-10.2c-se)

方法:用always语句块、组合逻辑实现三角波发生器逻辑设计

符号图:

Verilog代码:

Part1:Test14_tri_gen.v文件(Verilog工程文件)

//2020-06-06
//最简单的状态机(三角波发生器)
module Test14_tri_gen(clk,res,d_out );input                 clk;
input                   res;
output[8:0]             d_out;  //输出结果(299需要占用9bit)reg                        state;  //定义状态机寄存器,因只有两个状态,所以占用1bit就足够了
reg[8:0]                d_out;  //299需要占用9bitalways@(posedge clk or negedge res)if(~res) begin             //如果复位为低state<=0;d_out<=0;  //状态机进入零状态,d_out也为0endelse begincase(state)              //状态机0: begin d_out<=d_out+1;      //上升if(d_out==299)    begin   //跳转条件(计数器+1,加到299,跳转到1状态)state<=1;                //1状态endend1:   begin d_out<=d_out-1;       //下降if(d_out==1)  begin   //跳转条件(计数器-1,减到1,跳转到0状态)state<=0;               //0状态endendendcaseend
endmodule

Part2:Test14_tri_gen_tb.v文件(Verilog仿真文件)

//2022-06-06
//最简单的状态机(三角波发生器)-testbench of Test14_tri_gen
`timescale 1ns/10ps
module  Test14_tri_gen_tb;
reg                             clk_in,res_in;
wire[8:0]                       d_out;Test14_tri_gen U1(.clk(clk_in),       //异名例化.res(res_in),.d_out() );initial   beginclk_in<=0;res_in<=0;#17                        res_in<=1;#8000                 $stop;              //系统时钟周期为10ns,实现1-300、300-1计数,遍历运行一遍需要6000nsendalways #5                      clk_in<=~clk_in;    //设置系统时钟周期为10nsendmodule

仿真波形:

注意事项

1、因本状态机只有两个状态,所以占用1bit就足够了;

2、因本三角波的取值范围为1-300,故占用9bit即可满足计数;

3、因设定了系统时钟周期为10ns,故实现1-300、300-1计数,遍历运行一遍需要6000ns。

原教学视频链接如下

Verilog零基础入门_哔哩哔哩_bilibili

【Verilog零基础入门-边看边练】学习笔记——第七讲 时序逻辑代码设计和仿真(三角波发生器)(一)相关推荐

  1. 【Verilog零基础入门-边看边练】学习笔记——第三讲 组合逻辑代码设计和仿真(补码转换和七段译码逻辑设计)(二)

    二.七段译码逻辑设计 所需软件 Verilog编程软件:Lattice Diamond(3.11.0.396.4_Diamond_x64) Verilog仿真软件:ModelSim SE-64 10. ...

  2. Python零基础入门(三)——函数[学习笔记]

    目录: 一.函数: 1.内置函数 2.定义函数 二.函数参数: 1.必选参数 2.默认参数 3.可变参数/任意参数 4.关键字参数 三.return语句 四.函数封装 1.导入整个模块 2.导入特定的 ...

  3. 怎么安装python_零基础入门必看篇:浅析python,PyCharm,Anaconda三者之间关系

    今天为大家带来的内容是:零基础入门必看篇:浅析python ,PyCharm,Anaconda三者之间关系 众所周知,Python是一种跨平台的计算机程序设计语言,简单来说,python就是类似于C, ...

  4. 《零基础学JavaScript(全彩版)》学习笔记

    <零基础学JavaScript(全彩版)>学习笔记 二〇一九年二月九日星期六0时9分 前期: 刚刚学完<零基础学HTML5+CSS3(全彩版)>,准备开始学习JavaScrip ...

  5. 视觉SLAM十四讲学习笔记-第七讲-视觉里程计-对极几何和对极约束、本质矩阵、基础矩阵

    专栏系列文章如下:  专栏汇总 视觉SLAM十四讲学习笔记-第一讲_goldqiu的博客-CSDN博客 视觉SLAM十四讲学习笔记-第二讲-初识SLAM_goldqiu的博客-CSDN博客 视觉SLA ...

  6. 2022年最新最全的Java零基础入门,零基础入门springboot,MySQL的学习

    今天就来开始带领大家零基础入门Java开发 写在前面 为什么学习Java Java用途很广泛,如下图所示,Java可以做很多工作 JAVA语言发展史 2019年3月,JDK12版本发布. 2019年9 ...

  7. 零基础自学python看什么书-学习Python可以看书籍学习吗?老男孩Python入门课程

    在人工智能和数据分析的带领之下,推动了互联网市场的发展,也推动了python语言的发展,让它成为了市场上炙手可热的编程语言. 而python具有入门简单.就业范围广泛.薪资水平高诸多优势,越来越多的人 ...

  8. Python 零基础入门到实战(一)笔记:内置对象、浅拷贝、深拷贝、计算圆面积、凯撒密码、英文大小写转换、输入国家打印出国家名和首都、输入数字英文输出、统计句子中的字母数量、猜随机数

    Python入门到实战(一) 为什么写这篇文章 Part 1 入门部分 什么是编程语言? Python的优势 目前应用 特点 Part 2 6种内置对象 1 整数.浮点数 2 字符串 3 列表 4 元 ...

  9. Android入门到精通|安卓/Android开发零基础系列Ⅱ【职坐标】-学习笔记(1)-- 常用控件及资源介绍

    前言 为了巩固Android基础知识,回顾一下学习内容,才有此学习笔记. IDE Androdi Studio 4 + Genymotion 创建项目 修改项目的 build.gradle,添加国内镜 ...

  10. css 选择器 第一个class_【零基础上手JavaWeb】CSS小白学习笔记

    这是为大家面试定制的<零基础上手JavaWeb>系列.涵盖了JavaWeb基础内容,结合展示的案例,带你由浅入深掌握JavaWeb核心内容.非常适合小白入手的哦,一起加油吧~~ 1.CSS ...

最新文章

  1. 矩阵的终极分解-奇异值分解 SVD
  2. python类中方法的执行顺序-浅谈Python的方法解析顺序(MRO)
  3. python 文件处理1:将某一目录下的文件合并
  4. 成功在两台电脑上安装了spark集群,mark下
  5. 阿里云服务器如何创建快照备份数据
  6. CMake使用介绍(1)
  7. html实现多窗口同时显示,如何使webstorm同时显示多个窗口?
  8. myline java线段类,2008010 编写一个线段类 MyLine 联合开发网 - pudn.com
  9. 多媒体计算机辅助英语教学,多媒体计算机辅助英语教学
  10. 策略战棋游戏开发计划
  11. Elasticseach api keys are not enabled
  12. 【数据处理与分析】matplotlib快速入门
  13. css如何将div画成三角形
  14. 判断链表是否有环及环入口点的求法
  15. 2014第二十二届全国青少年信息学奥林匹克联赛初赛
  16. Glove论文详解及代码分析
  17. 手机屏幕技术浅述(TFT、SLCD、AMOLED、NOVA、IPS、ASV)
  18. Darkmode.js实现黑暗模式
  19. 【HTCVR】VRTK插件案例分析之0038~044
  20. CSMA/CD(具有冲突检测的载波侦听多路访问)

热门文章

  1. 书评精益创业-新创企业的成长思维 (上)
  2. exe软件如何更改标题?
  3. Premiere快捷键设置
  4. 土地利用分类数据类型和下载
  5. httpclient用法大全
  6. 计算机诞生了自主意识,计算机会有意识吗?整合信息或非人类独有
  7. C# Entity单条件查询与多条件查询
  8. java判断日期是否是同一周_java中如何判断两个日期是否是同一周
  9. mediatek无线网卡驱动 linux,MediaTek 高速USB网卡驱动适配
  10. poj3537 Crosses and Crosses 博弈论