Questa CDC(安全性测试)
作者:Saint
掘金:https://juejin.im/user/5aa1f89b6fb9a028bb18966a
微博:https://weibo.com/5458277467/profile?topnav=1&wvr=6&is_all=1
GitHub:github.com/saint-000
知乎:https://www.zhihu.com/people/saint-80-61/columns
Questa CDC是业界最强大且最易用,全面解决跨时钟域验证难题的高度自动化解决方案,此节针对逻辑测试进行讨论。
安全性测试:
1 环境搭建
1.1 安装VMware
在win7系统下安装VMware虚拟机
1.2 安装linux操作系统
在VMware虚拟机上安装Redhat系统镜像文件
虚拟机最大硬盘大小30GB、将虚拟磁盘存储为单个文件。
调整全屏
1.3挂载共享文件夹share
1.4新建安装文件夹
在linux操作系统中/home/test
文件夹下新建cdc文件夹
1.5安装Questa CDC
打开终端,切换到/mnt/hgfs/share
路径:
输入./V10.6a.Linux_64.aol并回车,会弹出Questa CDC图形化安装界面,将其安装到/home/test/cdc
路径下
1.6安装cdc自带库文件
输入./install_fpga_libs并回车,继续输入/home/test/cdc并回车,安装相关library;
1.7启动license服务
添加依赖库so.3至系统lib64
在linux中,使用vi编辑/etc/sysconfig/network-scripts/ifcfg-eth0
文件,配置网卡,修改HWADDR值为正版软件MAC号
Esc推出vi编辑模式, :q退出,出现只读情况用修改文件读写权限 chmod 777 ifcfg-eth0
在linux中,使用vi编辑/etc/rc.d/rc.local
,添加三行内容并保存:
ifdown eth0
ifconfig eth0 hw ether ** (**为上面提到的MAC号)
ifup eth0
然后重启linux(可直接用reboot命令)
使用vi编辑cdc.txt文件,修改SERVER为虚拟机主机名,MAC地址为正版软件MAC号,网络端口号为正版软件端口号,如localhost.localdomain 123456789123 11111、修改DAEMON mgcld 中license的路径DAMON mgcld/home/test/cdc/linux_x86_64/mgls/bin
并将cdc.txt保存在/home/test/cdc linux_x86_64/mgls/bin
路径下
将共享文件夹中的.cshrc启动文件保存在/home/test/路径下;
说明:
如果没有.cshrc文件,则需要用vi新建,并添加如下内容:
setenv QHOME “/home/test/cdc/linux_x86_64”
setenv HOME_0IN $QHOME
set path=($QHOME/bin $path)
setenv LD_LIBRARY_PATH “$QHOME/lib:$LD_LIBRARY_PATH”
setenv LM_LICENSE_FILE XXXX@localhost.localdomain:$LM_LICENSE_FILE
setenv MTI_HOME “$QHOME/modeltech/linux_x86_64”
setenv QVL_HOME “QHOME/share/modeltech/qvl_src”
set path=($MTI_HOME $path)
注意:网络端口号XXXX与license.txt中保持一致
通过csh命令执行cshrc中用户信息命令,打开终端,输入以下内容启动license服务:
csh
source /home/test/.cshrc
cd /home/test/cdc/linux_x86_64/mgls/bin
lmgrd –c icense.txt –l debug.log
说明:
a) 启动license成功,则可以使用cat debug.log命令查看结果;
b) 可使用qverify或者qcdc命令启用CDC软件界面,正常情况下会出现CDC软件图像化界面。
1.8异常情况
执行过程出错
此处有两个问题:
情况1:提示license中hostid与linux的mac值不一致
解决办法:
问题原因:虚拟网卡MAC未成功修改
情况2:执行一下步骤后:
提示禁用
解决办法:
yum install redhat-lsb
yum insatll redhat-lsb.i6868
yum -y install redhat-lsb
reboot重启、重启后ifconfig查看地址是否正确,不正确重复执行情况1操作
重复执行开启cdc程序操作:
2.使用Questa CDC
2.1新建工程文件夹
2.2添加工程路径和被测代码
2.3编译源代码:右键Compile All
2.4分析并添加时钟约束
在源代码中可知顶层文件输入时钟信号为 cpu_clk_in 、core_clk_in、mac_clk_in
使用vi编辑/home/test /cdc/linux_x86_64/examples/tutorials/cdc_static/qs_files
路径下的derictives.tcl
文件,将clock约束添加进去,周期不一致既可
2.5运行CDC检查
提示需要输入顶层文件名
2.6查看CDC跨时钟域检查结果
设计中的CDC问题主要分为三类,究其根本原因都是由于亚稳态造成:不同时钟域之间信号传播时出现数据破坏、亚稳态的传播、由于亚稳态会造成接收的CDC信号有变化的或不可预测的延时,这些不同延时的信号在重新聚合时就可能导致功能错误。如组合方式的再聚合,很有可能出现毛刺。