代码编织梦想

#************parameter input*************
#※prepare the source list file  and then make add the soucefile name 
#for example ,the Verilog source file's name is vlog_list.f then :make norsim src_list=file_list
src_list =  filelist
simv_name = simv_yolo
vpdpluse_name = vcdpluse_yolo
cov_file_name = coverage
vdb_name = $(simv_name)
ALL_DEFINE = +define+DUMP_VPD
#************constant command************
#compile
NOR_VCS = vcs -full64 -sverilog +v2k -timescale=1ns/1ns            \
      -debug_all                               \
	  -debug_pp								 \
      +notimingcheck                                   \
      +nospecify                                       \
	  +incdir+./../rtl/     			               \
      +vcs+flush+all                                   \
      -o $(simv_name)   \
      -l compile.log	\
	  -f $(src_list).f 

#coverage compile switch 
COV_SW = -cm line+cond+fsm+branch+tgl

#verdi dump wave compile option 
VERDI_SW = -P /home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/linux64/novas.tab \
/home/synopsys/verdi/Verdi_O-2018.09-SP2/share/PLI/VCS/linux64/pli.a

#run option
RUN_GUI = -R -gui -l run.log
RUN_VPD = -R +vpdfile+$(vpdpluse_name).vpd -l run.log
RUN_COV = -R $(COV_SW) -cm_name $(vdb_name) -cm_dir ./$(cov_file_name) -l run.log
RUN_VER = -R +fsdb+autoflush -l run.log
MYRUN_VPD = +vpdfile+$(vpdpluse_name).vpd
#************command************

#mycommand: comsim
comsim:
	$(NOR_VCS) $(ALL_DEFINE) $(MYRUN_VPD) 
	./$(simv_name) $(MYRUN_VPD) -l $(simv_name).log

#mycommand: debug
debug:
	dve -vpd $(vpdpluse_name).vpd &

#mycommand: myorder
myorder:
	$(NOR_VCS) $(ALL_DEFINE) $(MYRUN_VPD) +memcbk
	./$(simv_name) $(MYRUN_VPD) -l $(simv_name).log
	dve -vpd $(vpdpluse_name).vpd &

#normally sim
norsim: 
	$(NOR_VCS) $(RUN_GUI) 

#post-process
postsim:
	$(NOR_VCS)  $(RUN_VPD) 
	dve -vpd $(vpdpluse_name).vpd

#coverage
covsim:
	$(NOR_VCS) $(COV_SW) $(RUN_COV) 
	dve -covdir $(cov_file_name).vdb

#verdi
versim:
	$(NOR_VCS) $(VERDI_SW) $(RUN_VER)
	verdi -sv -f $(src_list).f -ssf *.fsdb -nologo &

#rm 
clr:
	rm -rf *csrc ./*.daidir $(simv_name) *simv* DVE* ucli* *.vpd *.vdb *.log *.fsdb *novas* *.dat *Log *rc *conf

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44128857/article/details/128436052

linux下verilog仿真过程(一)-爱代码爱编程

1》新建一个工作目录,以后相关的仿真文件都放在此目录下,如我的目录为:/home/xiaochuan/scr 2》编写模块文件(为了便于管理相关代码文件,可以将代码文件单独放在一个目录下,如home/xiaochuan/scr/MyFirstVerilogProject)。 以下是用always语句对1位全加器电路建模的示例,fa_seq.v代码如下:

VCS (Verilog Compile Simulator)如何使用-爱代码爱编程

compiles with IEEE1364 : verilog语言的仿真基于分层的事件队列 VCS 仿真模块的顺序(先从没有延迟的事件开始,执行它们,然后把时间设为0,然后按照时间顺序依次执行各个时间,同一层的时间,什么执行顺序都是可以的): (1)no delay(initial / always) (2)set t=0 (3)active regio

ASIC中IP核的使用——包括VCS和DC-爱代码爱编程

ASIC中IP核的使用——包括VCS和DC memory compilerVCS仿真DC综合用lc将lib文件转为db文件 之前一直想在DC等ASIC中将项目中的寄存器堆换成ram,奈何资源和能力都有限,一直没完成。 最近机缘巧合有条件将这个任务完成了,简单记录并分享一下。 memory compiler ASIC中的ram和FPGA平台

1000+岗位!华为招聘!-爱代码爱编程

岗位 Qustions & 介绍 Answers AI工程师 01 机器学习 【岗位职责】 1、从事机器学习算法和理论前沿研究。研究领域包括:元学习,AutoML, 深度学习,强化学习,贝叶斯学习等2、探索人工智能应用,构建智能系统,提供AI云服务。 【岗位要求】 1、获得计算机科学、机器学习、统计学、应用数

数字IC开发软件介绍-爱代码爱编程

刚毕业的时候,我年少轻狂,以为自己已经可以独当一面,庙堂之上所学已经足以应付业界需要。然而在后来的工作过程中,我认识了很多牛人,也从他们身上学到了很多,从中总结了一个IC设计工程师需要具备的知识架构,想跟大家分享一下。   I. 技能清单 作为一个真正合格的数字IC设计工程师,你永远都需要去不断学习更加先进的知识和技术。因此,这里列出来的技能永远都不

vcs编译systemverilog并且用verdi查看波形-爱代码爱编程

转载自:http://blog.chinaaet.com/weiqi7777/p/5100017757 对于编写的systemverilog代码,在linux下,可以使用vcs编译,但是编译的时候,要注意,要加入几个选项。 整个过程,linux使用的是64位的redhat,vcs使用的是vcs2015,verdi使用的是verdi2015。

a33 linux工具链,RISC-V --rocket-chip generator介绍及其仿真使用-爱代码爱编程

最近工作使用 rocket-chip generator 仿真非极大值抑制算法(C语言编写),分析其时序模型和riscv汇编指令,这里将rocket-chip generator的使用方法总结一下 说明:使用的rocket-chip generator的版本为:a8d573beeb8a33bb5dac0673ec68b82852a24d63 roc

verilog编程-1.10010序列检测器-爱代码爱编程

Verilog编程-1.10010序列检测器 1. 背景 ​ 序列检测器在数据通讯,雷达和遥测等领域中有着充分应用,使用verilog语言进行序列检测也是常见的编程练习题,本文对于数字序列 10010 进行检测,使用verilog语言,编辑器为vscode仿真平台为vcs。对于检测到的序列信号输出为 1 ;否则输出为 0 。 2. 设计思路 ​ 使

UVM学习之路(2)— 使用VCS+Verdi进行仿真调试-爱代码爱编程

UVM学习之路(2)— 使用VCS+Verdi进行仿真调试 一、前言 Verdi最初是由Novas Softwave公司设计的,后属于了SpringSoft公司,最终SpringSoft被Synopsys公司收购,Verdi正式属于Synopsys。 Verdi可以调用第三方工具进行编译仿真产生波形文件并可以查看、可查看源代码对应的电路图,最强大

IC验证面试常问题88道-爱代码爱编程

Q1. 定宽数组、动态数组、关联数组、队列各自特点和使用 队列:队列结合了链表和数组的优点,可以在一个队列的任何位置进行增加或者删除元素;定宽数组:属于静态数组,编译时便已经确定大小。其可以分为压缩定宽数组和非压缩定宽数组:压缩数组是定义在类型后面,名字前面;非压缩数组定义在名字后面。Bit [7:0][3:0] name; bit[7:0] name

verilog实现10011序列检测器-爱代码爱编程

目录 状态机简介  模块设计代码如下: 测试平台如下: Makefile仿真脚本VCS+Verdi run.tcl文件 仿真波形 状态机简介 本文设计了一个“10011”序列检测器,采用moore型状态机进行了设计。 Moore型状态机:输出只由当前状态决定,即次态=f(现状,输入),输出=f(现状); Mealy型状态机:输出不但与

数模混合仿真-爱代码爱编程

SPICE模型 参考:做电路仿真必须知道什么是SPICE模型! 如今,每一天都有不知其数的半导体芯片设计公司与设计验证工程师,在用着电路仿真软件SPICE。SPICE广泛应用在仿真模拟电路(例如运放OpAmp,能隙基准稳压电源BandgapReference,数模/模数转换AD/DA等),混合信号电路(例如锁相环PLL,存储器SRAM/dRAM,高速输

数字IC设计SOC入门进阶-爱代码爱编程

硕士毕业从事FPGA逻辑开发已四年,对于未来的发展方向、技术提升等充满了困惑、迷茫。此时,恰逢数字IC设计岗位兴起,也顺利获得转岗offer,这也注定了未来几十年北漂的辛苦生活。 仅以此文记录自己的学习成长,希望自己不断提升专业技能,也为其他读者提供参考借鉴。愿中国IC设计和制造在未来不断发展,愿相关从业者事业有成! 本文持续更中。 Li

IC芯片半导体集成电路人才招聘-爱代码爱编程

多家企业招聘:薪资可谈20--200万年薪,上海全国上班, 芯片验证工程师25-150万15薪; 芯片设计工程师20-200万15薪; IC版图工程师30-200万16薪; ASIC后端工程师50-100万15薪; SOC架构总监50-150万; SOC 验证工程师30-150万;  高级SOC/ASIC验证工程师30-150万; 高级SO

SystemVerilog学习总结-爱代码爱编程

因为选择的offer是IC验证,以前学的是设计,所以只能再学systemverilog(SV)和UVM了。在学习SV和UVM之前,我认为需要学习以下几个部分:数字电路、c++和verilog。因为IC验证确实有不少别的专业之前没学过数字电路和Verilog,所以还是最好先学习一下。 知识点的总结主要是通过systemverilog验证-测试平台编写指南这

20220718-内容整理_星崆的博客-爱代码爱编程

1.EDA工具的特点 EDA是指利用计算机辅助设计(CAD)软件,来完成超大规模集成电路(VLSI)芯片的功能设计、综合、验证、物理设计(包括布局、布线、版图、设计规则检查等)等流程的设计方式。 版本控制SVN/GIT:版本控制工具; Makefile:一种脚本语言; Linux/Unix:操作系统 2.SVN的命令及如何使用 (1)svn up:

综合工具-design compiler使用(从rtl到综合出各种报告timing\area\critical_path)_不吃葱的酸菜鱼的博客-爱代码爱编程

        之前讲过gvim、vcs、makefile的使用,相当于自己写出一个RTL代码,可以实现编译、仿真及脚本自动化控制操作。         本篇专栏讲讲自己写出一个RTL code之后如何对其进行综合,能够看到我们写的代码的timing报告、面积报告以及critical path。         逻辑综合(synthesis)就是将前

数字ic验证工程师面试题|ic验证面试常问88道_ic观察者的博客-爱代码爱编程

Q1. 定宽数组、动态数组、关联数组、队列各自特点和使用 队列:队列结合了链表和数组的优点,可以在一个队列的任何位置进行增加或者删除元素; 定宽数组:属于静态数组,编译时便已经确定大小。其可以分为压缩定宽数组和非压缩定宽数

【5】amba-爱代码爱编程

目录 一、Feature overview: 1、支持AXI/AHB/APB协议传输; 2、存储器: 3、外设: 二、System architectu