通信算法之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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/92457.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/92457.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/92457.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

計網學習筆記第3章 數據鏈路層(灰灰題庫)

題目 11 單選題 下列說法正確的是______。 A. 路由器具有路由選擇功能,交換機沒有路由選擇功能 B. 三層交換機具有路由選擇功能,二層交換機沒有路由選擇功能 C. 三層交換機適合異構網絡,二層交換機不適合異構網絡 D. 路由器適合異構網絡&…

SQL的LEFT JOIN優化

原sql,一個base表a,LEFT JOIN三個表抽數 SELECT ccu.*, ctr.*, om.*, of.* FROM ods.a ccu LEFT JOIN ods.b ctr ON ccu.coupon_code ctr.coupon_code AND ctr.is_deleted 0 LEFT JOIN ods.c om ON ctr.bill_code om.order_id AND om.deleted 0 LEFT JOIN ods.…

Redis 核心概念、命令詳解與應用實踐:從基礎到分布式集成

目錄 1. 認識 Redis 2. Redis 特性 2.1 操作內存 2.2 速度快 2.3 豐富的功能 2.4 簡單穩定 2.5 客戶端語言多 2.6 持久化 2.7 主從復制 2.8 高可用 和 分布式 2.9 單線程架構 2.9.1 引出單線程模型 2.9.2 單線程快的原因 2.10 Redis 和 MySQL 的特性對比 2.11 R…

【Day 18】Linux-DNS解析

目錄 一、DNS概念 1、概念和作用 2、域名解析類型 3、 軟件與服務 4、DNS核心概念 區域 記錄 5、查詢類型 6、分層結構 二、DNS操作 配置本機為DNS內網解析服務器 (1)修改主配置文件 (2)添加區域 正向解析區域: …

Python 中 OpenCV (cv2) 安裝與使用介紹

Python 中 OpenCV (cv2) 安裝與使用詳細指南 OpenCV (Open Source Computer Vision Library) 是計算機視覺領域最流行的庫之一。Python 通過 cv2 模塊提供 OpenCV 的接口。 一、安裝 OpenCV 方法 1:基礎安裝(推薦) # 安裝核心包&#xff0…

微軟WSUS替代方案

微軟WSUS事件回顧2025年7月10日,微軟最新確認Windows Server Update Services(WSUS)出現了問題,導致IT管理員無法正常同步和部署Windows更新。WSUS是允許管理員根據策略配置,將更新推送到特定計算機,并優化…

Minio 分布式集群安裝配置

目錄創建 mkdir -p /opt/minio/run && mkdir -p /etc/minio && mkdir -p /indata/disk_0/minio/datarun:啟動腳本及二進制文件目錄/etc/minio:配置文件目錄data:數據存儲目錄下載 minio wget https://dl.min.io/server/minio…

Spring Boot + ShardingSphere 實現分庫分表 + 讀寫分離實戰

🚀 Spring Boot ShardingSphere 實現分庫分表 讀寫分離(涵蓋99%真實場景) 🏷? 標簽:ShardingSphere、分庫分表、讀寫分離、MySQL 主從、Spring Boot 實戰 分庫分表 vs 讀寫分離 vs 主從配置與數據庫高可用架構區別 …

將普通用戶添加到 Docker 用戶組

這樣可以避免每次使用 Docker 命令時都需要 sudo。以下是具體步驟:1. 創建 Docker 用戶組(如果尚未存在) 默認情況下,安裝 Docker 時會自動創建 docker 用戶組。可以通過以下命令檢查: groupadd docker(如果…

Scrapy(一):輕松爬取圖片網站內容?

目錄 一、CrawlSpider 簡介? 二、實戰案例:圖片網站爬取? 三、代碼解析:核心組件詳解? 類定義: 2.核心屬性:? 3.爬取規則(Rules):? 4.數據提取方法(parse_item)…

使用 systemd 的原生功能來實現 Redis 的自動監控和重啟,而不是依賴額外的腳本最佳實踐方案

使用 systemd 的原生功能來實現 Redis 的自動監控和重啟,而不是依賴額外的腳本最佳實踐方案方案 1:配置 systemd 服務文件(推薦)1. 檢查/創建 Redis 的 systemd 服務文件2. 配置關鍵參數(覆蓋配置示例)3. 重…

Eclipse 代碼模板

Eclipse 代碼模板 引言 Eclipse 作為一款功能強大的集成開發環境(IDE),深受廣大開發者的喜愛。在編程過程中,使用代碼模板可以大大提高開發效率,減少重復勞動。本文將詳細介紹 Eclipse 代碼模板的配置、使用方法以及一…

輸電線路防外破聲光預警裝置 | 防山火/防釣魚/防施工安全警示系統

在輸電網絡的安全保障中,外力破壞是一個不容忽視的問題,各類隱患可能對電力系統造成嚴重影響。TLKS-PMG-WP 輸電線路聲光防外破警示裝置在應對這類挑戰時,有著獨特的技術表現,下面從功能和技術參數兩方面進行詳細介紹。核心功能解…

STM32——STM32CubeMX

總:STM32——學習總綱 一、簡介 注意,非邏輯代碼。 可兼容不同系列的STM32Cube固件包。 STM32Cube前置知識鏈接: STM32——HAL庫 不可過多依賴,此工具只針對STM32芯片,類似英飛凌芯片無法配置。主要用于參考。 二、安…

Java NIO 核心原理與秋招高頻面試題解析

一、NIO 概述Java NIO(New I/O 或 Non-blocking I/O)是 Java 1.4 引入的一套全新 I/O API,位于 java.nio 包下。NIO 提供了與傳統 BIO(Blocking I/O)完全不同的 I/O 處理方式,通過非阻塞模式、緩沖區&#…

vue3+element-plus,el-popover實現篩選彈窗的方法

實現一個篩選框,點擊篩選按鈕出現彈窗,彈窗內有選擇框/輸入框/單選框等等,底部有重置/確定兩個按鈕。需求:點擊篩選外部其他位置可以關閉彈窗,關閉彈窗后已編輯的數據不保存,點擊確定按鈕關閉彈窗&#xff…

python每日一題 貪心算法練習

在一條環路上有 n 個加油站,其中第 i 個加油站有汽油 gas[i] 升。你有一輛油箱容量無限的的汽車,從第 i 個加油站開往第 i1 個加油站需要消耗汽油 cost[i] 升。你從其中的一個加油站出發,開始時油箱為空。給定兩個整數數組 gas 和 cost &…

Python + Pika RabbitMQ集群壓測完整方案

一、最近搭建了個rabbitmq集群 三個磁盤節點,上生產環境之前想做個壓測,測試下穩定性,參考Deepseek做了如下測試方案二、核心代碼實現: 配置文件 (config.py) import os RABBITMQ_NODES [amqp://admin:123456192.168.0.175:8101,…

【第7話:相機模型3】自動駕駛IPM圖像投影拼接技術詳解及代碼示例

IPM圖像投影拼接技術詳解 IPM(逆透視映射)圖像投影拼接技術是一種在計算機視覺中廣泛應用的圖像處理方法,主要用于將多個透視視圖的圖像轉換為鳥瞰視圖并拼接成一個無縫的大場景圖像。該技術特別適用于自動駕駛、機器人導航和監控系統等領域&…

【測試工程思考】測試自動化基礎能力建設

1 回顧 傳統軟件研發體系下定義的軟件測試是從用戶視角設計的。測試是試圖窮盡用戶行為的工程,從測試用例(use case)的英文定義就可見一般。測試的邏輯資產就是用自然語言去描述用戶的操作行為或路徑。 但隨著軟件工程向分布式架構和敏捷交付…