Intel Quartus如何在ubuntu18.04.4上安装
这篇文章将为大家详细讲解有关Intel Quartus如何在ubuntu18.04.4上安装,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
首先去Intel的Quartus官网https://www.intel.cn/content/www/cn/zh/software/programmable/quartus-prime/overview.html找到下载界面
然后选择版本和操作系统
点击下载
注意这里有官方的问题解答和安装教程,建议看英文版的安装教程https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/manual/quartus_install.pdf,介绍更加全面和详细
有一点疑惑是问题解答说安装目录可以有空格,但是英文版的安装教程说不能有,很奇怪
下载完解压,按照教程安装,然后启动(快捷图标和命令行都可以,根据英文版教程,用
即可启动,我加了alias(2020.8.9:因为涉及到命令行及脚本,最终选择了用户变量$PATH),直接quartus启动),报错: quartus: error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory
大概意思是说缺少这个libpng12.so.0,然后复制这个erro到谷歌,打开了第一个回答、第二个回答和第一个回答下面的子回答
第一个回答https://community.intel.com/t5/Programmable-Devices/Quartus-can-t-find-shared-library/td-p/161251是说他有libpng12.so.0但是没有识别到,可能路径不对,我locate我的libpng12.so.0发现在snap里面
zli@lizhen:~/altera_lite/15.1/quartus$ locate libpng12.so.0 /opt/kingsoft/wps-office/office6/libpng12.so.0/opt/kingsoft/wps-office/office6/libpng12.so.0.50.0/snap/core/7270/lib/x86_64-linux-gnu/libpng12.so.0/snap/core/7270/lib/x86_64-linux-gnu/libpng12.so.0.54.0/snap/core/7270/usr/lib/x86_64-linux-gnu/libpng12.so.0/snap/core/9665/lib/x86_64-linux-gnu/libpng12.so.0/snap/core/9665/lib/x86_64-linux-gnu/libpng12.so.0.54.0/snap/core/9665/usr/lib/x86_64-linux-gnu/libpng12.so.0/snap/sublime-text/85/lib/x86_64-linux-gnu/libpng12.so.0/snap/sublime-text/85/lib/x86_64-linux-gnu/libpng12.so.0.54.0/snap/sublime-text/85/usr/lib/x86_64-linux-gnu/libpng12.so.0
第二个回答与第一个回答一样。第一个回答下面的子回答有一个是下载libpng16-16然后手动创建文件夹后ln过去https://askubuntu.com/questions/1093817/when-trying-to-install-crossover-deb-i-get-error-dependency-is-not-satisfiable,其余的子回答感觉很复杂的样子,没仔细看。但其实第三个主回答就有答案https://stackoverflow.com/questions/53403790/cannot-open-shared-object-file-libpng12-so-0,只不过当时觉得复杂看不懂。
然后我在最前面加了ubuntu18 再次搜索,一略而过觉得很复杂,但其实第一个回答就是刚才的第三个主回答。
我本想参照那个子回答用ln把snap中的libpng12.so.0 link过去,但灵机一动可以用ubuntu quartus install关键词再搜索一次,然后发现了这篇文章https://www.bitsnbites.eu/installing-intelaltera-quartus-in-ubuntu-17-10/
他说安装Qurtus需要用到linpng12,而ubuntu17没有,所以需要先安装。
我觉得ubuntu18也没有,于是返回刚才的搜索界面找到第一个回答https://stackoverflow.com/questions/53403790/cannot-open-shared-object-file-libpng12-so-0,sudo su以后运行回答提供的命令
wget -q -O /tmp/libpng12.deb http://mirrors.kernel.org/ubuntu/pool/main/libp/libpng/libpng12-0_1.2.54-1ubuntu1_amd64.deb \ && dpkg -i /tmp/libpng12.deb \ && rm /tmp/libpng12.deb
再打开quartus就可以了。
####启示:1.不要看子回答,不相关;2.换搜索关键词的思路。
我用命令行打开后会报两个错误
zli@lizhen:~$./altera_lite/15.1/quartus$/bin/quartusGtk-Message: 16:29:40.101: Failed to load module "canberra-gtk-module"(quartus:16485): Gtk-WARNING **: 16:29:40.608: Error loading theme icon 'window-close' for stock: Unable to load image-loading module: /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so: /home/zli/altera_lite/15.1/quartus/linux64/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /usr/lib/x86_64-linux-gnu/libicuuc.so.60)
第一个错误直接谷歌,按照https://askubuntu.com/questions/208431/failed-to-load-module-canberra-gtk-module执行
sudo apt-get install libcanberra-gtk-module
搞定。
第二个错误直接谷歌,按照http://www.stevesmuddlings.org/2015/09/test-post-1.html执行
cd/15.1/quartus/linux64sudo mv libstdc++.so.6 libstdc++.so.6.quartus_distribsudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6
搞定。
装好后按照这个教程熟悉一下GUI界面:https://blog.csdn.net/Alexanderrr/article/details/51615254,注意文中所说的文件名要与module后面定义的实体名一致
。
如果碰到Warning (12125): Using design file test_for_blif.v, which is not specified as a design file for the current project, but contains definitions for 1 design units and 1 entities in project Info (12023): Found entity 1: test_for_blif
是因为没有把文件添加到project里面,打开File把文件添加进去:
我写了一个一位全加器(笑)
module test_for_blif( input cin, input a, input b, output reg [1:0] s ); always @ (*) s = a + b + cin; endmodule
然后按照CAD_Flow0的教程一次就可以成功,修改完qsf文件后不用重启quartus,保存以下直接编译就行。这里给出before_optimize和after_lut_map(after complete optimization and tech-mapping)后的结果,还是很明显有区别的,after_lut_map(after complete optimization and tech-mapping)已经映射到了两个3LUT上去:
before_optimize:
.model test_for_blif.inputs cin a b.outputs s[0] s[1]#g1 = Add0~synth.names a b g110 101 1#g1 = Add0~synth#s[0] = Add1~synth.names cin g1 s[0]10 101 1#g3 = Add0~synth.names a b g311 1#g1 = Add0~synth#g4 = Add1~synth.names cin g1 g411 1#g3 = Add0~synth#g4 = Add1~synth#s[1] = Add1~synth.names g3 g4 s[1]00 0.end
after_lut_map(after complete optimization and tech-mapping):
.model test_for_blif.inputs cin a b.outputs s[0] s[1]#s[0] = Add1~synth.names cin a b s[0]100 1010 1001 1111 1#s[1] = Add1~synth.names cin a b s[1]110 1101 1011 1111 1.end
还需要注意一点的是根据论文Benchmarking Method and Designs Targeting Logic Synthesis for FPGAs
在before_optimize和after_lut_map(after complete optimization and tech-mapping) 中间的after complete optimization还可以输出一次blif,但是CAD_Flow0的教程中并没有教这一步应该怎么做。
我猜测肯定是改为before_lut_map或者是after_optimize,前者不行,后者成功!这里给出after_optimize的结果,因为我这个只是一位全加器。逻辑简单,所以优化不优化都一样
after_optimize:
.model test_for_blif.inputs cin a b.outputs s[0] s[1]#g1 = Add0~synth.names a b g110 101 1#g1 = Add0~synth#s[0] = Add1~synth.names cin g1 s[0]10 101 1#g3 = Add0~synth.names a b g311 1#g1 = Add0~synth#g4 = Add1~synth.names cin g1 g411 1#g3 = Add0~synth#g4 = Add1~synth#s[1] = Add1~synth.names g3 g4 s[1]00 0.end
#2020.7.26 在ubuntu 18.04.4下尝试Quartus 20.1、一个简单的一位全加器代码分别在before_optimize、after_optimize和after_lut_map可以生成对应的blif文件。
另外,CAD_Flow0的命令太老了,跑大例子跑不通,没有打开balckbox,所以复现论文Benchmarking Method and Designs Targeting Logic Synthesis for FPGAs的例子时是采用例子中的.ini中的命令来执行的。
只需要把CAD_Flow0中的命令全部去掉,改为:
set_global_assignment -name INI_VARS "cdb_ignore_error_for_rom_missing_mif=on;no_add_ops=on;dump_blif_with_blackboxes=on;dump_blif_before_optimize=on;abort_after_dumping_blif=on"即可。
after_optimize、after_lut_map只需要做相应更改即可。
cdb_ignore_error_for_rom_missing_mif=on 这条命令是针对rom的初始化来说的,如果verilog或者vhdl里面没有rom的话,这条命令可有可无。
no_add_ops=on 这条命令是有用的,实际测试有这条命令在after_optimize后生成的blif文件比没有这条命令生成的blif文件行数会减少。after_lut_map后也同样如此。
dump_blif_with_blackboxes=on 这条命令也是需要的,生成blackbox必须的,没有会报错。
关于"Intel Quartus如何在ubuntu18.04.4上安装"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。