tag 标签: VCS

相关博文
  • 热度 5
    2022-1-12 11:15
    6239 次阅读|
    0 个评论
    基于vcs+uvm+xilinx ip的仿真平台的半自动化搭建
    1. 总体概述 1.1 软件环境 系 统: ubuntu 18.04 仿真平台: vcs_2018.09-SP2 开发平台: vivado 2019.2 本文的主要目的是自动化搭建基于 vcs+uvm+xilinx ip 的仿真平台,节省平台搭建的时间与精力。 1.2 概述 拿到一个项目,一般的平台搭建的步骤:去网上找一个 makefile 脚本(或者使用原项目脚本),修改相应的软件路径,添加 rtl 与 tb 顶层,如果工程中包含 xilinx ip 核就比较麻烦,需要添加相应的库文件,这里面最麻烦的就是对 xilinx ip 核的独立编译。有经验的工程师很快可以搞定,对于小白来说就要花一些时间。 vivado 关联 vcs 仿真可以导出 shell 脚本,天然支持 xilinx ip 核,解决了上述的麻烦。将生成的脚本转换成 makefile 脚本,添加 uvm 编译仿真配置以及 uvm 开发代码,支持 vcs+uvm+xilinx ip 核的平台就搭建好了。 除了自动化的部分以外,我们需要准备的东西包括 1. xilinx 的工程(项目工程) 2. makefile 脚本(后面会给出模板,替换相应的位置即可) 3. uvm 代码(如果不需要 uvm ,用 sv 即可) 2. vivado 关联 vcs 仿真 这一步骤需要安装好 vcs ,能够正常启动,然后在 vivado 2019.2 中做如下配置: 2.1 编译仿真库 点击 Compile Simulation Libraries Compiled library location会默认选择 *.cache下 在 Simulator executable path中添加vcs 仿真器可执行文件的位置 ,点击 compile等待仿真库编译完成。 编译完仿真库,打开仿真库所在文件夹,找到 synopsys_sim.setup,先记住它,后面会用到。 2.2 修改仿真配置 点击打开 1. 修改 Target simulator为Veriolog Compiler Simulator(VCS) 2. 在以下位置 添加 配置 vcs.elaborate.vcs.more_options中添加以下配置 -cpp g++-4.8 -cc gcc-4.8 -LDFLAGS -Wl,--no-as-needed 保证系统当前使用的 gcc g++版本是4.8 2.3 启动仿真 3. 导出仿真脚本 3.1 导出仿真脚本 打开 Export Simulation ,如下图 Exoprt directoty 路径 选择好以后,点击 OK 会生成相应的仿真脚本 3.2 将 shell 改写为 makefile 在导出路径下面会生成一个顶层命名的 shell ,将其改写成 Makefile ,这里已经将 Makefile 准备好模板,完成 “ 填空 ” 后直接添加即可。如下图,修改以下 ”##” 标示的 4 处即可。 3.3 关联 xilinx ip 库 创建 synopsys_sim.setup 文件,将路径指向 2.1 小节中的 synopsys_sim.setup 位置,内容如下: 4. 添加 UVM 添加文件夹uvm与uvm-1.2,其中uvm文件夹内是uvm开发代码,uvm-1.2是 uvm库文件,将目录放到与vcs(导出仿真脚本路径)同级路径下,这样修改工程后再次导出的时候文件夹就不会被覆盖。uvm相关的配置已添加在Makefile脚本中,不需要再添加。 5. 启动仿真 打开终端,输入 make ,启动仿真。
  • 热度 25
    2016-1-12 10:50
    1154 次阅读|
    0 个评论
    版本控制系统是在开发人员之间共享源代码的一种极好方法。这些系统能够让多人同时修改相同的代码集而不会发生频繁来回发送文件的风险。当开发出现问题时,这些系统能够确保简单的按一下钮就可以回到开发前的完美状态。历史表明,没有版本控制系统的开发过程将注定是一个灾难!版本控制系统是一种很重要的开发工具,掌握并充分发挥这些系统的作用有许多技巧。 技巧1——频繁提交 目前的嵌入式软件有着自己的生存方式,并且倾向于喜怒无常。开发人员只做了很少量的修改,整个系统就可能岌岌可危。开发人员无所畏惧,认为只要恢复他所做的少量修改就OK了!但系统仍然处于崩溃状态。没有版本控制系统,开发人员现在只能抓耳挠腮,试图回想他们5分钟前做的但一时又想不起来的修改!另一方面,使用版本控制的工程师只需轻轻点击鼠标就能恢复到以前正常工作的代码版本,然后小心谨慎地重新开始。但如果开发人员几天都没有提交他的代码会怎么样?数天的辛苦工作将付诸东流,这正是使用版本控制的开发人员应该频繁提交的原因!完成一个功能就提交。部分功能正常工作了也可以提交。这不仅能在系统出错时节省工程师的时间,而且能在版本控制系统中留下所做修改的完整痕迹。 技巧2——填写提交日志 工程师能够频繁地提交他们的代码修改确实很棒;然而,如果在修改日志中没有提供足够的信息,这种提交也被证明是没有效果的。大多数版本控制工具都允许在提交代码时做一些注释。切记要在日志中填写有帮助和有用的信息!不要在这里留下空白或放置加密信息!日后当代码中出现缺陷并且开发人员追溯版本时,日志中包含有用的修改信息将显得非常重要。填写这些信息只需很短的时间,但可以节省很长时间的挫败和头痛感!尝试创建一个在每次提交代码前需要填写的通用日志格式。 掌握版本控制系统的十个技巧 《电子技术设计》网站版权所有,谢绝转载 技巧3——不要忘了向版本控制系统中添加文件 版本控制系统经常会作弄开发人员。最大的玩笑是开发人员认为他已经提交了代码但实际上他没有提交!怎么会发生这种情况呢?大多数系统要求当你创建了一个文件时你要将它加入版本控制系统。如果没有这样做,那么系统会愉快地提交但忽略掉没有加入的那些文件!因此不要忘了向版本控制系统添加文件! 掌握版本控制系统的十个技巧 技巧4——定义提交过程 实际上真的很容易忘记将文件添加到版本控制系统、正确地记录修改以及与版本控制系统相关的各种任务。最好是为需要执行的每个不同任务创建一个过程。例如,创建一个提交过程,类似于这样: 也可以整理归纳出其它一些过程,例如创建分支代码、合并分支代码与主干源代码以及创建正式发布的代码。 《电子技术设计》网站版权所有,谢绝转载 技巧5——锁定正在处理的模块 经常会发生多个开发人员在开发同一个项目并需要修改同一模块的情况。版本控制系统通常有个功能,允许编程人员锁定特定模块进行编辑。这样可以阻止另外一个编程人员同时修改同一文件,防止在代码集中发生冲突。 技巧6——使用代码比较工具 经常不可避免地发生代码中意外出现缺陷的情况。在发现这个缺陷后我们就会问一个问题,“改了什么地方?”确切了解修改内容的唯一方式是比较不同版本的代码。如果没有大多数版本控制系统都包含差异工具这个事实的话,这可是个痛苦的过程。这种差异工具允许对不同版本的代码进行并排比较。这些有差异的地方会被高亮显示,方便作为缺陷的潜在源进行详细检查。 技巧7——不要害怕合并代码分支 将代码分支到单独的版本、进行修改然后合并回主干版本这个概念经常让人感到恐惧!如果出错了会发生什么情况?如果没能正确合并、主干代码变崩溃了怎么办?初级人员经常担忧合并分支,但不必过分担心!这是一种很常见的事情,特别是当多个开发人员涉足同一项目时。如果出现了错误,也很容易回到前一个版本并重新开始!克服这种恐惧感的最佳方法是多实践,在技巧10中将有进一步讨论。 技巧8——集成像Trac这样的工具 目前有许多工具可以完美地集成进版本控制系统。这些工具的范围也很广,从缺陷跟踪到项目管理工具不等。Trac是一种深受开发人员喜爱的工具,它不仅允许规划软件的不同版本,跟踪缺陷,还允许游览存储在知识库中的代码集!在代码检查和规划会议期间这个功能就显得非常便利!最吸引人的是这个工具是免费的!可以从http://trac.edgewall.org/网站下载。 掌握版本控制系统的十个技巧 《电子技术设计》网站版权所有,谢绝转载 技巧9——利用连续集成 现在有一种席卷全球的纯概念非常流行,即连续集成。虽然有多种不同版本的想法,但最让人感兴趣的一种是在开发人员提交代码时发生的。作为提交过程的一部分,集成服务器将编译代码,并运行单元测试!如果发现任何错误,它们都会报告给开发人员!这里的想法是测试与代码一起开发,只要新版本一创建,就立即检查是否有缺陷!这是一种独特的概念,应该充分加以利用!市场上有许多免费的连续集成服务器,包括大家熟知的Hudson。即便只是想要了解这种技术,这些服务器也值得一看。 技巧#10——创建一个测试库并试验 不管你阅读了多少技巧和提示,都无法完全取代实际的经验。最常用的版本控制系统是SVN。客户和服务端应用程序都可以免费下载。VisualSVN服务器是一个很好用的服务器,你不需要很大的数据库。一旦它达到某个值,就会要求用户开始支付费用。在客户侧,Tortoise SVN是一个不错的客户端!下载它们并开始试验吧!不用多久你就将成为VCS大师! 原作者:Jacob Beningo Jacob Beningo是一位嵌入式系统设计的演讲师和咨询师。他曾与多家公司合作开发高质量和鲁棒性的产品,并帮助他们克服嵌入式设计挑战。 《电子技术设计》网站版权所有,谢绝转载
  • 热度 24
    2013-10-31 16:32
    1130 次阅读|
    0 个评论
    版本控制系统是在开发人员之间共享源代码的一种极好方法。这些系统能够让多人同时修改相同的代码集而不会发生频繁来回发送文件的风险。当开发出现问题时,这些系统能够确保简单的按一下钮就可以回到开发前的完美状态。历史表明,没有版本控制系统的开发过程将注定是一个灾难!版本控制系统是一种很重要的开发工具,掌握并充分发挥这些系统的作用有许多技巧。 技巧1——频繁提交 目前的嵌入式软件有着自己的生存方式,并且倾向于喜怒无常。开发人员只做了很少量的修改,整个系统就可能岌岌可危。开发人员无所畏惧,认为只要恢复他所做的少量修改就OK了!但系统仍然处于崩溃状态。没有版本控制系统,开发人员现在只能抓耳挠腮,试图回想他们5分钟前做的但一时又想不起来的修改!另一方面,使用版本控制的工程师只需轻轻点击鼠标就能恢复到以前正常工作的代码版本,然后小心谨慎地重新开始。但如果开发人员几天都没有提交他的代码会怎么样?数天的辛苦工作将付诸东流,这正是使用版本控制的开发人员应该频繁提交的原因!完成一个功能就提交。部分功能正常工作了也可以提交。这不仅能在系统出错时节省工程师的时间,而且能在版本控制系统中留下所做修改的完整痕迹。 技巧2——填写提交日志 工程师能够频繁地提交他们的代码修改确实很棒;然而,如果在修改日志中没有提供足够的信息,这种提交也被证明是没有效果的。大多数版本控制工具都允许在提交代码时做一些注释。切记要在日志中填写有帮助和有用的信息!不要在这里留下空白或放置加密信息!日后当代码中出现缺陷并且开发人员追溯版本时,日志中包含有用的修改信息将显得非常重要。填写这些信息只需很短的时间,但可以节省很长时间的挫败和头痛感!尝试创建一个在每次提交代码前需要填写的通用日志格式。 掌握版本控制系统的十个技巧 《电子技术设计》网站版权所有,谢绝转载 技巧3——不要忘了向版本控制系统中添加文件 版本控制系统经常会作弄开发人员。最大的玩笑是开发人员认为他已经提交了代码但实际上他没有提交!怎么会发生这种情况呢?大多数系统要求当你创建了一个文件时你要将它加入版本控制系统。如果没有这样做,那么系统会愉快地提交但忽略掉没有加入的那些文件!因此不要忘了向版本控制系统添加文件! 掌握版本控制系统的十个技巧 技巧4——定义提交过程 实际上真的很容易忘记将文件添加到版本控制系统、正确地记录修改以及与版本控制系统相关的各种任务。最好是为需要执行的每个不同任务创建一个过程。例如,创建一个提交过程,类似于这样: 也可以整理归纳出其它一些过程,例如创建分支代码、合并分支代码与主干源代码以及创建正式发布的代码。 《电子技术设计》网站版权所有,谢绝转载 技巧5——锁定正在处理的模块 经常会发生多个开发人员在开发同一个项目并需要修改同一模块的情况。版本控制系统通常有个功能,允许编程人员锁定特定模块进行编辑。这样可以阻止另外一个编程人员同时修改同一文件,防止在代码集中发生冲突。 技巧6——使用代码比较工具 经常不可避免地发生代码中意外出现缺陷的情况。在发现这个缺陷后我们就会问一个问题,“改了什么地方?”确切了解修改内容的唯一方式是比较不同版本的代码。如果没有大多数版本控制系统都包含差异工具这个事实的话,这可是个痛苦的过程。这种差异工具允许对不同版本的代码进行并排比较。这些有差异的地方会被高亮显示,方便作为缺陷的潜在源进行详细检查。 技巧7——不要害怕合并代码分支 将代码分支到单独的版本、进行修改然后合并回主干版本这个概念经常让人感到恐惧!如果出错了会发生什么情况?如果没能正确合并、主干代码变崩溃了怎么办?初级人员经常担忧合并分支,但不必过分担心!这是一种很常见的事情,特别是当多个开发人员涉足同一项目时。如果出现了错误,也很容易回到前一个版本并重新开始!克服这种恐惧感的最佳方法是多实践,在技巧10中将有进一步讨论。 技巧8——集成像Trac这样的工具 目前有许多工具可以完美地集成进版本控制系统。这些工具的范围也很广,从缺陷跟踪到项目管理工具不等。Trac是一种深受开发人员喜爱的工具,它不仅允许规划软件的不同版本,跟踪缺陷,还允许游览存储在知识库中的代码集!在代码检查和规划会议期间这个功能就显得非常便利!最吸引人的是这个工具是免费的!可以从http://trac.edgewall.org/网站下载。 掌握版本控制系统的十个技巧 《电子技术设计》网站版权所有,谢绝转载 技巧9——利用连续集成 现在有一种席卷全球的纯概念非常流行,即连续集成。虽然有多种不同版本的想法,但最让人感兴趣的一种是在开发人员提交代码时发生的。作为提交过程的一部分,集成服务器将编译代码,并运行单元测试!如果发现任何错误,它们都会报告给开发人员!这里的想法是测试与代码一起开发,只要新版本一创建,就立即检查是否有缺陷!这是一种独特的概念,应该充分加以利用!市场上有许多免费的连续集成服务器,包括大家熟知的Hudson。即便只是想要了解这种技术,这些服务器也值得一看。 技巧#10——创建一个测试库并试验 不管你阅读了多少技巧和提示,都无法完全取代实际的经验。最常用的版本控制系统是SVN。客户和服务端应用程序都可以免费下载。VisualSVN服务器是一个很好用的服务器,你不需要很大的数据库。一旦它达到某个值,就会要求用户开始支付费用。在客户侧,Tortoise SVN是一个不错的客户端!下载它们并开始试验吧!不用多久你就将成为VCS大师! 原作者:Jacob Beningo Jacob Beningo是一位嵌入式系统设计的演讲师和咨询师。他曾与多家公司合作开发高质量和鲁棒性的产品,并帮助他们克服嵌入式设计挑战。 《电子技术设计》网站版权所有,谢绝转载
  • 热度 29
    2010-12-4 20:12
    4214 次阅读|
    0 个评论
    nanosim和vcs都是synopsys的工具,二者联合起来可以比较方便的进行数字模拟混合仿真。最近研究了一下混合仿真的过程,可以进行初步的混合仿真。 仿真平台的结构为:Top level (Verilog RTL) | |--RTL sub module(用来产生激励和比较模拟电路输出结果) | |--hspice sub ckt(在RTL中以模块形式例化) 相关的命令和配置文件: 编译RTL和网表文件:"vcs -f vfile.f ad -l vcs_comp_lvs.log" 其中vfile.f包括了需要编译的RTL文件。参数 ad表示要进行混合仿真,需要模拟相关的配         置信息文件,该文件默认为vcsAD.init。 vcsAD.init文件:该文件指令用于仿真模拟电路的程序和模拟电路网表名称,命令包括         choose nanosim -n ../netlist/sim_control_lvs.sp -c cfg -t 60e-6 -Q; //该命令选择nanosim仿真工具,设定了网表文件和配置信息文件cfg,并设定了仿真时间长度。         set bus_format _%d  //设定了总线格式 cfg文件:该文件为nanosim的配置文件,里面可以设定仿真精度及接口域值转换电平等信息,比如,        set_sim_eou sim=3 model=3 ;仿真精度可分七级,从1到7,精度依次提高。        set_node_thresh 0.35 1 v=0 evt=0 执行完以上编译命令后,生成了二进制的simv文件,直接运行simv即可开始仿真。 需要提示的是,RTL中调用模拟电路子电路,接口名子必须一致,在RTL中可以用总线形式描述电路中的接口。 在RTL中可以dump出数字信号波形为VCD文件。模拟网表中可以保存模拟信号波形为nanosim.out文件。这两个波形文件都可用Verdi的debussy打开察看。
相关资源
  • 所需E币: 1
    时间: 2021-9-30 18:25
    大小: 779.19KB
    上传者: Argent
    从二极管到三极管,从单片机到多核MCU,3G网络到5G产品的普及,不管电子产品的集成度怎么高,其产品还是少不了电阻电容电感,每个元器件在电路中必然有其作用。单片机是芯片开发的基础,相信从中会获得您意想不到的知识。
  • 所需E币: 5
    时间: 2020-1-4 23:34
    大小: 1.15MB
    上传者: 16245458_qq.com
    SynopsysVCSTraining培训资料……