Synopsys EDA数字设计与仿真

搭建EDA环境

参考如下博文安装Synopsys EDA开发工具

https://blog.csdn.net/tugouxp/article/details/132255002?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22132255002%22%2C%22source%22%3A%22tugouxp%22%7D

Synopsys EDA工具的结构

下面使用Synopsys的EDA数字综合仿真工具直观感受以下数字设计的基本流程:

数字模块设计&仿真

counter_tb.v

复制代码
`include "timescale.v"
module counter_tb;
  reg irst = 0;
  reg iclk = 0;
  wire [3:0] ocnt;
  initial begin
    irst = 1; #100;
    irst = 0; #300;
    $stop;
    #1000;
    $finish;
  end
  always begin #5 iclk = !iclk; end
  counter counter_test(
    .irst(irst),
    .iclk(iclk),
    .ocnt(ocnt)
  );
  initial
  $monitor("At time %t, ocnt = %d", $time, ocnt);
  initial
  begin
    //$dumpfile("counter_test.vcd");  //$dumpvars(0, counter_test);
    $fsdbDumpfile("counter_tb.fsdb"); //testbench的名字       
    $fsdbDumpvars();
    $fsdbDumpSVA();
    $fsdbDumpMDA();
  end
endmodule

timescale.v

复制代码
`timescale 1ns/1ps

counter.v

复制代码
`include "timescale.v"
module counter(irst, iclk, ocnt );
  input irst, iclk;
  output reg [3:0] ocnt;
  always @ (posedge iclk)
    if(irst)
      ocnt <= 4'b0000;
    else
      ocnt <= ocnt + 1'b1;
endmodule

Makefile

复制代码
all:
	iverilog -o counter_test $(notdir $(wildcard ./*.v))
	vvp -n counter_test -lxt2
	cp counter_test.vcd counter_test.lxt

sim:
	gtkwave counter_test.lxt

vcs:
	vcs -R -full64 -timescale=1ns/1ns -fsdb -f file.l

verdi:
	verdi -f file.l -ssf counter_tb.fsdb

clean:
	rm -fr *.lxt *.vcd
	rm -fr counter_test

file.l 是verilog源码清单文件:

复制代码
counter_tb.v
counter.v
timescale.v

VCS编译&综合,执行make vcs:

复制代码
vcs -R -full64 -timescale=1ns/1ns -fsdb -f file.l

verdi查看波形,q退出ucli%,执行make verdi,实际上是执行如下命令查看波形:

复制代码
verdi -f file.l -ssf counter_tb.fsdb

Unified Command Line Interface (uCLi) 提供了与VCS交互仿真的控制命令,即与VCS的命令行输入接口。uCLi的命令是基于Tcl脚本语言进行编写的,也就是说可以编写Tcl脚本来实现:

  • 控制仿真
  • dump fsdb或者vpd波形文件
  • 保存或恢复仿真状态
  • force或release某个信号
  • 使用breakpoints或scope以及内建宏等信息对设计进行调试

因此可以很灵活的进行调试和仿真控制。

波形和GTKWAVE得到的波形是一样的:

FSDB全称是Fast Signal DataBase,是 Verdi 支持的波形文件,一般较小,使用较为广泛。

fsdb文件是verdi使用一种专用的数据格式,类似于VCD(Value Change Dump),但是它是只提出了仿真过程中信号的有用信息,除去了VCD中信息冗余,就像对VCD数据进行了一次huffman编码。因此fsdb数据量小,而且会提高仿真速度。VCD文件是文本格式的文件,它是使用verilog内置的系统函数来实现的,是 Verilog HDL语言标准的一部分,因此所有的verilog的仿真器都能够查看该文件,允许用户在verilog代码中通过系统函数来dump VCD文件。

使用VCS提供的工具fsdb2vcd可以将fsdb格式的波形文件转换为VCD格式,之后再用gtkwave查看,转换命令如下,下图是FSDB转换为VCD格式的波形文件后的显示效果:

复制代码
fsdb2vcd counter_tb.fsdb | tee a.vcd

参考资料

https://www.cnblogs.com/lzhj/p/15719777.html


结束

相关推荐
DQI-king10 小时前
ZYNQ学习记录FPGA(二)Verilog语言
学习·fpga开发·zynq
9527华安10 小时前
国产安路FPGA纯verilog图像缩放,工程项目解决方案,提供5套TD工程源码和技术支持
fpga开发·verilog·图像缩放·双线性插值·安路fpga
俺不是西瓜太郎´•ﻌ•`13 小时前
实验四:图像灰度处理
fpga开发
GateWorld16 小时前
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析(四)DPHY ECC
fpga开发·mipi csi2
贝塔实验室16 小时前
FPGA 的硬件结构
arm开发·fpga开发·职场和发展·硬件架构·硬件工程·fpga·安全架构
GateWorld19 小时前
《深入解析SPI协议及其FPGA高效实现》-- 第三篇:FPGA实现关键技术与优化
fpga开发·开源协议
XMAIPC_Robot20 小时前
RK3568/RK3588 KVM系统虚拟化解决方案
网络·fpga开发·边缘计算
俺不是西瓜太郎´•ﻌ•`1 天前
大实验:基于赛灵思csg324100T,pmodMAXsonar的危险距离警报
fpga开发
ThreeYear_s1 天前
基于FPGA的超声波显示水位距离,通过蓝牙传输水位数据到手机,同时支持RAM存储水位数据,读取数据。
fpga开发
szxinmai主板定制专家1 天前
【飞腾AI加固服务器】全国产化飞腾+昇腾310+PCIe Switch的AI大模型服务器解决方案
运维·服务器·arm开发·人工智能·fpga开发