当前位置:   article > 正文

【芯片设计- RTL 数字逻辑设计入门 1- Linux 环境下 VCS与 Verdi 联合仿真及 Perforce 介绍】_linux下ic 仿真环境

linux下ic 仿真环境


请阅读【芯片设计 RTL 数字逻辑设计扫盲 】


上篇文章:芯片设计 - 常用工具 bsub 命令介绍
下篇文章:芯片设计- RTL 数字逻辑设计入门 2 - vcs 及 verdi 使用介绍

1.1 VCS 与 Verdi 简介

VCS,Verdi 是什么,为何要用 VCS 和 Verdi?

1.1.1 VCS/Verdi 介绍

相信大家都用过 VivadoQuartus 等,这里以 Vivado 为例,它集成了 RTL的编译,仿真,综合,看波形及烧录镜像等业务,相比之下,VCSVerdi 就很专业:

  • VCS 专注于编译及仿真;
  • Verdi 专注于看波形。

如上问所述 既然 Vivado 功能如此之全,为何要大费周折用 VCS 和 Verdi 呢

Vivado 其实只能算个写 Verilog 的(而且还很慢),只不过集成了综合,仿真,看波形等功能,如果要真正做ASIC 设计,还是得在各个步骤用上用更加专业的EDA软件。首先VCS编译仿真速度极快,效率极高,节约时间,Verdi 看波形也十分方便 debug,它支持信号追溯,无缝增加信号波形等功能。

注意:仿真包含前仿和后仿,如果单纯的前仿,VCS就绰绰有余了,然后想后仿,那就得需要再用DC (Design Complier)来“综合”

1.1.2 VCS 编译介绍

使用 VCS 等工具进行仿真最少要准备 3 个文件

  • 所写的 RTL文件(.v) ;
  • 用于仿真的测试激励文件(.sv) ;
  • 统筹前2个文件的 Makefile 文件。
full_adder_tb.sv  full_adder.v Makefile
  • 1

full_adder.v 内容如下:

module full_addr(
	input wire a_in,
	input wire b_in,
	input wire c_in,
	output wire sum_out,
	output wire c_out
);

assign sum_out = a_in ^ b_in ^ c_in;
assign c_out = (a_in & b_in) |  (b_in & c_in) |  (a_in & c_in);
endmoudle
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

full_adder_tb.sv 内容如下:

`timescale 1ns/1ns

module full_add
  • 1
  • 2
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号