通信算法之307:fpga之时序图绘制

时序图绘制软件

一. 序言

在FPGA设计过程中,经常需要编写设计文档,其中,不可缺少的就是波形图的绘制,可以直接截取Vivado或者Modelsim平台实际仿真波形,但是往往由于信号杂乱无法凸显重点。因此,通过相应软件绘制波形,并予以标注,会更加直观。目前,常用的波形绘制软件有:" Visio、TimeGen、WaveDrom" 等,本文主要介绍这三款软件波形图的绘制。

一、Visio

Visio软件用于波形绘制相较于后两者绘图可以达到一样的效果,但是在波形绘制过程中要做到信号名、信号波形边沿对齐等是比较繁琐的,而且需要搭配相应的图形包绘制起来才会更便捷(Visio常用波形图形包)。Visio绘制的时序波形如下图所示。

二、TimeGen

TimeGen软件的界面如下图所示。

该界面下的按键功能说明如下:

添加时钟信号:用于添加理想时钟该信号。选中该信号右键选择Edit Attributes可以设置信号名、信号名字体、信号名字号颜色、上升沿触发(Rising Edge )还是下降沿触发(Falling Edge)、时钟信号占空比(Clock Duty)以及该时钟信号的时钟宽度是默认时钟宽度的几倍(Clock)等;

添加电平信号: 用于添加位宽为1的电平信号。与时钟信号一致,选中该信号右键选择Edit Attributes可以设置各个参数;

添加多比特信号:用于添加位宽为多比特的信号;

添加空信号:在选中信号的上一行添加一个空信号(即占一个信号的高度);

ASCII波形输出:用于输出整个时序波形的ASCII表示,可以直接复制粘贴到word文档中;

删除一个时钟周期:删除选中波形图中所有信号的最后一个时钟周期;

增加一个时钟周期:在最后一个时钟周期后面添加一个时钟周期;

增加时钟周期宽度:增加每个时钟周期的宽度;

减小时钟周期宽度:减小每个时钟周期的宽度;

增加信号高度:增加每个信号的高度;

减小信号高度:减小每个信号的高度;

减小信号之间间距:减小信号与信号之间的间距;

增加信号之间间距:增加信号与信号之间的间距;

选中信号:选中某个信号或者选中某个信号的某个时钟周期内的值;

转为高/低电平:将信号当前时钟周期的值转为高/低电平(选中后向上/向下拉)

转为高阻态Z:将信号当前时钟周期的值转为高阻态Z;

多位宽信号变化:用于设置多比特信号在上升沿或者下降沿处发生改变;

在某个时钟周期内添加数值:对信号某个时钟周期内的数值进行标注;

标注建立/保持时间:标注建立时间/保持时间(两种不同的标注形式,一种是双向箭头,一种是两个单向箭头);

添加信号箭头标注:在不同信号的不同时钟之间添加箭头标注;

省略符:添加省略符,用于表示信号一段时间内保持该值;

填充颜色:填充颜色,右击可切换填充色;

清除填充颜色:清除填充颜色;

TimeGen绘制的时序波形如下图所示。

三、WaveDrom

WaveDrom是一种基于js的时序图工具,与前两者相比,没有便捷的工具栏直接绘制波形图,通过js语言进行绘制,绘制的波形图也较为美观。其基本语法如下:

{signal: [

// 信号1

{name: '信号名1', wave: '波形'},

// 信号2

{name: '信号名2', wave: '波形'},

// 信号...

],

"config" : { "hscale" : 信号宽度 }

}

这里波形绘制主要有两个主要参数:信号名与波形。这里波形的控制常用语法如下表所示:

符号 功能

. 将先前的状态再延迟一个时钟周期

p 以上升沿开始的一个时钟周期

P 以上升沿开始的一个时钟周期(上升沿带箭头)

n 以下降沿开始的一个时钟周期

N 以下降沿开始的一个时钟周期(下降沿带箭头)

x 不定态波形

z 高阻态波形

u 虚线高阻态波形

d 虚线低电平

l 理想波形的低电平

h 理想波形的高电平

L 理想波形的低电平(在变为低电平处带箭头)

H 理想波形的高电平(在变为高电平处带箭头)

0 理想波形的低电平

1 理想波形的高电平

2 多比特数据(背景白色)

3 多比特数据(背景黄色)

4 多比特数据(背景橙色)

5 多比特数据(背景蓝色)

6 多比特数据(背景天青色)

7 多比特数据(背景绿色)

8 多比特数据(背景紫色)

9 多比特数据(背景粉色)

= 多比特数据(背景白色),与"2"功能一致

∣ |∣ 省略符

WaveDrom软件绘制的时序波形如下图所示。

{signal: [

{name: 'clk', wave: 'P...'},

{name: 'a' , wave:'010...10'},

{name: 'b' , wave:'0.1...0.'},

{name: 'c' , wave:'01.0...'},

],

"config" : { "hscale" : 1 }

}

四、总结

Visio、TimeGen 和 WaveDrom 功能互补,可满足不同场景下的波形图绘制需求。

原文链接:https://blog.csdn.net/qq_42224089/article/details/138061567

相关推荐
你要飞8 小时前
Hexo + Butterfly 博客添加 Live2D 看板娘指南
笔记
ajsbxi11 小时前
【Java 基础】核心知识点梳理
java·开发语言·笔记
呱呱巨基11 小时前
vim编辑器
linux·笔记·学习·编辑器·vim
新子y12 小时前
【小白笔记】普通二叉树(General Binary Tree)和二叉搜索树的最近公共祖先(LCA)
开发语言·笔记·python
聪明的笨猪猪12 小时前
Java JVM “调优” 面试清单(含超通俗生活案例与深度理解)
java·经验分享·笔记·面试
爱学习的uu12 小时前
CURSOR最新使用指南及使用思路
人工智能·笔记·python·软件工程
YuCaiH12 小时前
Linux文件处理
linux·笔记·嵌入式
Cathy Bryant12 小时前
大模型损失函数(二):KL散度(Kullback-Leibler divergence)
笔记·神经网络·机器学习·数学建模·transformer
qq_3985865413 小时前
Threejs入门学习笔记
javascript·笔记·学习
hour_go13 小时前
TCP/IP协议相关知识点
网络·笔记·网络协议·tcp/ip