千家信息网

Intel Quartus如何在ubuntu18.04.4上安装

发表于:2024-12-03 作者:千家信息网编辑
千家信息网最后更新 2024年12月03日,这篇文章将为大家详细讲解有关Intel Quartus如何在ubuntu18.04.4上安装,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。首先去Intel的Quar
千家信息网最后更新 2024年12月03日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,介绍更加全面和详细

有一点疑惑是问题解答说安装目录可以有空格,但是英文版的安装教程说不能有,很奇怪

下载完解压,按照教程安装,然后启动(快捷图标和命令行都可以,根据英文版教程,用/quartus/bin/quartus即可启动,我加了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上安装"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

0