背景:

我用十年前的旧笔记本电脑一直当fpga调试电脑用,用了差不多两年,感觉性能越来越卡,开vivado的工程做implementation很慢,最近甚至出现了hardware manager连不上芯片,遍查各种经验,也解决不了问题。
一开始USB都用不了,后来各种尝试,用USB hub去接U盘,这方面问题解决了。USB烧录器始终不行,我感觉可能是杀毒软件或者硬件上有问题了。于是又找了个八年前的旧电脑,重新装系统和fpga工作用的软件,终于完成了。
过程中一些要点和排雷,在这边文章记录下来,以备查用。


重装操作系统步骤:

备份完成,电脑中剩余内容全不要,不需低格,不需要大白菜启动盘(低级格式化是在清理电脑的所有痕迹时用的,大白菜启动盘不仅可以重装系统还可以维护系统),只需操作系统盘和驱动软件的文件包:

  1. 按F2或该电脑启动时英文界面里说的按键,打断正常启动程序,进入BIOS,选择光盘启动(我用的window7的安装光盘,在开机前就插在光驱里了)。
  2. 跟随着电脑界面上的引导,进行操作系统安装,过程中如果重新分区,就会格式化硬盘上的内容。我是从网上查了一下分区的具体界面和操作步骤,把电脑整体格式化了,分区是两个大一点的,C盘和D盘,C盘准备放系统和不得不在C盘安的软件,D盘是主要使用盘,放软件、FPGA工程和安装大部分软件的,E盘比较小,放其他不好归类的杂项,设成默认下载目录。
  3. 操作系统安装完成,进入操作系统的第一次启动,此时要设置电脑用户名,USB的鼠标键盘都可以使用了。
  4. 安装驱动,我有之前的光盘里有网卡驱动,但安完之后不能用WiFi,本来还想挺复杂得先找个USB无线网卡用。后来从同事那里拷贝来驱动精灵这个软件,驱动精灵在不联网的情况就可以安装,它能帮我把网卡驱动装好,之后就能连WiFi,在驱动精灵的界面下去检测和安装缺少的驱动了。(驱动精灵我拷来的版本比较低,在这个版本下像显卡驱动等始终安装不上,我的电脑就一直是分辨率很奇怪的状态。直到尝试更新驱动精灵,在漫长的更新过程之后,各个驱动就安得顺利了)(本来我工作中能明白驱动和硬件是关联的,但一开始自己装电脑总有误区,以为同事之前用的驱动光盘我能直接使,忘了驱动的性质,得确定硬件一致才能借用,最好是联网用驱动精灵类的软件,逐项检查和安装)。
  5. 驱动安完,经过几轮重启,电脑就初见成效了。之后我安装了vivado等FPGA工作的常用软件,大概用了一天多,才把电脑完全搞定。

Vivado软件安装注意:

因为反复装过好几次vivado2017.4,我安装的顺畅程度就快多了,只是license文件一开始没找对。我用vivado自带的示例项目做仿真,发现报错的时候,才发现,一开始以为是仿真仿错了,换了个工程也不行。又试了一下synthesis,果然也报错,就是license没加对。
vivado的安装包很占空间,其他的工程软件也有类似的现象,我这次做好了规划,安装包都存在我的移动硬盘里,要安装时,把安装包都拷贝到电脑的一个文件夹下,安完一个删一个安装包,这样让电脑干净些,节约资源。


Modelsim安装注意:



  1. modelsim10.6d是可以和vivado2017.4
    联合仿真的版本,我不是第一回装,但发现这次怎么装都不对。原因是下载的安装包里面的说明是针对32位系统的,我这次重装之后是64位系统,所以破解的时候得有一点小改动。
  2. 我是问同事才知道.dll文件能用文本编辑器打开,能看懂的部分是可以改改看的。其实就是一个32位改64位的配置,本身有这些文件,只需要把是脚本的那个dll文件改一下就可以了
  3. 另外我发现通过dll文件点右键选择“以管理员权限运行”,和在开始菜单的cmd点右键“以管理员权限运行”,不一样。我用dll文件点右键去运行,效果不好,命令窗口一闪而过。而从cmd入口,通过指令去运行,就能成功完成。这个是我这次安装的收获。
  4. 最终我发现自己的一个低级错误,在环境变量那里,我把路径写错了,特别想当然的一个错误。就是自己对了一下两个地方,以为一样,就从好选的地方直接粘过去了,而没有从稍麻烦但正确的地方复制。这种想当然在查bug的时候经常有,回头真想拍死自己的错误。
  5. 最后是设置vivado和modelsim的联合仿真,我问同事问到一部分,但自己也需要再从网络上面搜索一下,把几处经验结合起来。modelsim在这个步骤一开始都不需要打开,全是在vivado里设置的,用意是vivado的库编译一下,生成新文件。需要注意两个路径,一个是modelsim的安装路径,到win64文件夹而不是modelsim.ini文件,这个设定就可以了;其余的路径就是编译完vivado的库要存哪的路径,这个有两处。我从网上看到有说不用勾选xilinx ip的,但我又结合了其他人的说法,把xilinx ip勾上了,这个编译很慢。我估计说不用勾的,是他做的仿真可能不需要某个IP,节约时间的做法,勾选上是好的,这样把有的IP一次性都编译一下。这样生成的库得有6个G左右,时间用了一个多小时。
  6. 之后我就试验了vivado示例项目的仿真,直接modelsim就可以调出了,感觉挺好,总想尝试的一个方式搞定了。因为据说vivado自己仿真很慢,用modelsim能够提高工作效率,我慢慢去感受吧。