多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] # 环境说明 ` `这里配置的是vcs2016环境,它的运行需要使用gcc-4.8和g++-4.8,注意gcc,g++必须是这两个版本! # gcc环境准备 ## 关于deepin gcc环境的说明 ` `deepin15.11默认的gcc版本是gcc-6,并且再起仓库不能通过命令`sudo apt-get install gcc-4.8 g++-4.8直接安装`,因此我们首先需要使用其他方法来安装这个版本的gcc和g++到电脑。 ## deepin安装gcc-4.8/g++-4.8的最快方法 ` `经过几番摸索,我们通过更换deepin软件源的方式来安装gcc是最快的。 * [ ] 我们选用清华的软件源,其地址为`https://mirrors.tuna.tsinghua.edu.cn/deepin panda main contrib non-free`,使用命令 ``` sudo dedit /etc/apt/sources.list ``` 来更换deepin的默认软件源。 ``` ## Generated by deepin-installer #deb [by-hash=force] http://packages.deepin.com/deepin lion main contrib non-free #deb-src http://packages.deepin.com/deepin lion main contrib non-free # 清华软件源 deb [by-hash=force] https://mirrors.tuna.tsinghua.edu.cn/deepin panda main contrib non-free # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free ``` * [ ] 使用`sudo apt-get update `来更新仓库,大概只需要几分钟时间。 * [ ] 使用命令安装gcc和g++,执行`sudo apt-get install gcc-4.8 g++-4.8`即可。 ` `不出意外的话我们电脑里已经安装了这两个版本的gcc和g++,即存在4.8和6两个版本,但是我们的环境中使用`gcc --version`看到版本依旧是6的版本。 ## 解决gcc多版本切换问题 ` `通过命令`ls /usr/bin/gcc*`可以查看电脑里面存在的gcc版本,g++查看同理。 ![](https://img.kancloud.cn/3e/5d/3e5dcbe66bedfc4448b0818abb3131dc_611x147.png) ` `将某个版本加入gcc候选中,最后的数字是优先级,我自己是直接设为50(测试没有问题),这里我将gcc4.8和6以及g++-4.和6加入候选项。 指令如下: ``` sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 50 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 50 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-6 50 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 50 ``` ` `同样的我们也将原来系统中的gcc和g++的优先级改成50,这样我们就能在选择完当前使用版本之后不会恢复默认优先级的版本。 ` `完成上面的操作之后,我们就可以通过下面的指令来选择不同的gcc和g++的版本了 * [ ] 选择gcc版本 ``` sudo update-alternatives --config gcc ``` ![](https://img.kancloud.cn/3a/fd/3afd7dec70809972e2b61f01dcdbb3fd_634x327.png) 输入对应版本的编号就能切换了,g++切换同理,指令为 ``` sudo update-alternatives --config g++ ``` **特别说明:当切换使用了其他版本的gcc时,请务必保持g++的版本和gcc版本的一致性,否则用cmake配置出来的项目遇到c++代码还是会用之前版本的gcc。** # 安装vcs环境 -> [请用于学习用途](https://www.kancloud.cn/dlover/fpga/1739374) <- # System verilog简单测试 ` `我的电脑为64位的,因此下面都是在64位下的操作。 step1:建立sv文件夹,并进入 ``` mkdir sv cd sv ``` step2:建立hello.sv测试文件 hello.sv的文件内容为: ``` module hello; //定义数组 int md[2][3] = '{'{5,6,7},'{2,5,9} } ; initial begin $display("hello,system verilog!"); foreach (md[i,j]) $display("md[%0d][%0d]=%0d",i,j,md[i][j]); end endmodule ``` step3:使用vcs编译仿hello.sv文件 ``` vcs -full64 -LDFLAGS -Wl,-no-as-needed -V -R -sverilog hello.sv ``` ` `如果顺利,会有以下结果。 ``` Chronologic VCS simulator copyright 1991-2016 Contains Synopsys proprietary information. Compiler version L-2016.06_Full64; Runtime version L-2016.06_Full64; May 29 23:10 2020 VCS Build Date = May 24 2016 20:38:43 Start run at May 29 23:10 2020 hello,system verilog! md[0][0]=5 md[0][1]=6 md[0][2]=7 md[1][0]=2 md[1][1]=5 md[1][2]=9 V C S S i m u l a t i o n R e p o r t Time: 0 CPU Time: 0.450 seconds; Data structure size: 0.0Mb Fri May 29 23:10:46 2020 CPU time: .692 seconds in simulation ``` ![](https://img.kancloud.cn/65/44/654411a6a09a658c09ccc5beecdc8720_646x762.png) # 测试项目下载 ` `测试环境的代码放到了码云上,这样到时候换电脑,配置环境可以节约时间。 [sv测试工程](https://gitee.com/yuan_hp/sv.git)