lowRISC / opentitan

OpenTitan: Open source silicon root of trust
https://www.opentitan.org
Apache License 2.0
2.59k stars 780 forks source link

Try Vivado 2019.1 #89

Closed imphil closed 3 years ago

imphil commented 5 years ago

Vivado 2019.1 is out and the release notes seem pretty promising.

towoe commented 5 years ago

Should we consider this as a requirement for November? Requiring people to follow our documentation and use 2018.3 seems a little bit off to me.

tjaychen commented 5 years ago

I'd vote for trying it out and see what happens :)

On Fri, Aug 16, 2019 at 8:16 AM Tobias Woelfel notifications@github.com wrote:

Should we consider this as a requirement for November? Requiring people to follow our documentation and use 2018.3 seems a little bit off to me.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/lowRISC/stwg-base/issues/661?email_source=notifications&email_token=AAH2RSVCIROWTCLC76ISB7TQE3AEVA5CNFSM4H32XR3KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD4O4TJQ#issuecomment-522045862, or mute the thread https://github.com/notifications/unsubscribe-auth/AAH2RSWMKCPMUQ2L7C3NVTTQE3AEVANCNFSM4H32XR3A .

towoe commented 5 years ago

I tried it and it crashes while synthesizing. But I am using Arch Linux and there are some known problems with Vivado. So it might be good if someone with Ubuntu could give it a try as well.

runme.log

INFO: [Synth 8-294] found qualifier unique on case statement: implementing as parallel_case [build/lowrisc_systems_top_earlgrey_nexysvideo_0.1/src/pulp-platform_riscv-dbg_0.1_0/pulp_riscv_dbg/src/dm_mem.sv:314] Abnormal program termination (11) Please check 'build/lowrisc_systems_top_earlgrey_nexysvideo_0.1/synth-vivado/lowrisc_systems_top_earlgrey_nexysvideo_0.1.runs/synth_1/hs_err_pid4983.log' for details Parent process (pid 4983) has died. This helper process will now exit

hs_err...log

An unexpected error has occurred (11) Stack: /usr/lib/libc.so.6(+0x3a7e0) [0x7f767b3c17e0] /opt/xilinx/Vivado/2019.1/lib/lnx64.o/librdi_synth.so(ElabSvlgScope::subprogramScope() const+0x2d) [0x7f76403f79dd] /opt/xilinx/Vivado/2019.1/lib/lnx64.o/librdi_synth.so(ElabSvlgScope::addRhsDecl(ElabSvlgDecl*)+0x17d) [0x7f76403f8a8d] /opt/xilinx/Vivado/2019.1/lib/lnx64.o/librdi_synth.so(ElabSvlgScope::cleanup()+0x72) [0x7f76403fbd22] /opt/xilinx/Vivado/2019.1/lib/lnx64.o/librdi_synth.so(ElabSvlgScope::~ElabSvlgScope()+0x1e) [0x7f76403fc68e]

imphil commented 5 years ago

@tomroberts-lowrisc experienced the same problems with Ubuntu 18.04. So clearly not usable yet. (Tom, did you use 2019.1.2?)

imphil commented 5 years ago

So to summarize: Vivado 2019.1 doesn't work at the moment. I googled and didn't find this bug reported on the Xilinx forums so far, so we should do that to increase the chances of it getting fixed in a subsequent release.

Next steps:

tjaychen commented 5 years ago

Ram, is this something you and Ohad have time to try out?

rpenugo commented 5 years ago

Tim, this should be possible

On Tue, Sep 17, 2019 at 2:31 PM tjaychen notifications@github.com wrote:

Ram, is this something you and Ohad have time to try out?

— You are receiving this because you were assigned. Reply to this email directly, view it on GitHub https://github.com/lowRISC/opentitan/issues/89?email_source=notifications&email_token=ALULWCMY3W6ULJMRDC37WBDQKFEDVA5CNFSM4ISTSWYKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD657AOQ#issuecomment-532410426, or mute the thread https://github.com/notifications/unsubscribe-auth/ALULWCJNOIU4MNRW6VPUHNLQKFEDVANCNFSM4ISTSWYA .

rpenugo commented 5 years ago

With Vivado 2019.1.2

From this , it looks safe to upgrade...

tjaychen commented 5 years ago

@rpenugo do you want to go ahead and update the instructions?

Also, is the newer version more stable with the command line programming command? Or are we pretty constrained by the GUI still?

@tjshep will want to know this information...

towoe commented 5 years ago

With Vivado 2019.1.2

So they might have fixed something and not documented it? They still recommend using 2019.1: For customers using these devices, Xilinx recommends installing Vivado 2019.1.3. For other devices, please continue to use Vivado 2019.1.

I will try 2019.1.3 and also try the command line installation as I did not do this with 2019.1.

towoe commented 5 years ago

Building with Vivado 2019.1.3 was successful as well.

For reference the instructions I used to install Vivado after I downloaded the files from the website

$ chmod u+x Xilinx_Vivado_SDK_Web_2019.1_0524_1430_Lin64.bin
$ ./Xilinx_Vivado_SDK_Web_2019.1_0524_1430_Lin64.bin --keep --noexec --target vivado2019.1
$ cd vivado2019.1
$ ./xsetup -b AuthTokenGen
$ #Enter user name and password
$ ./xsetup --agree 3rdPartyEULA,WebTalkTerms,XilinxEULA --batch Install --edition "Vivado HL WebPACK" --location "/opt/xilinx"
$ tar -xf Xilinx_Vivado_SDx_Update_2019.1.3_0904_0930.tar.gz
$ cd Xilinx_Vivado_SDx_Update_2019.1.3_0904_0930
$ ./xsetup -b Update
tomeroberts commented 5 years ago

2019.1.3 worked for me too (Ubuntu 18.04)

rpenugo commented 5 years ago

Sounds good, I will update the pointers in doc (to recommend using 2019.1.3) and we can close this

On Mon, Sep 23, 2019 at 5:06 AM Tom Roberts notifications@github.com wrote:

2019.1.3 worked for me too (Ubuntu 18.04)

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/lowRISC/opentitan/issues/89?email_source=notifications&email_token=ALULWCPVFMSKIOYEIWCGR4LQLCWL7A5CNFSM4ISTSWYKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD7KUGRY#issuecomment-534070087, or mute the thread https://github.com/notifications/unsubscribe-auth/ALULWCI2PKLKXE573Y4N4XLQLCWL7ANCNFSM4ISTSWYA .

asb commented 5 years ago

Please do file such a PR, but we should block merging it until we update the CI runner so it has this version of Vivado available. We will need to decide a more robust policy for when to bump the minimum recommended Vivado version post-launch, but I'm happy for us to take the opportunity to upgrade now while there are fewer stakeholders. Adding this Vivado version to the CI machine is a task I'll need to do.

rpenugo commented 5 years ago

Spoke too soon I guess ... noticing synthesis crashes on ToT builds with 2019.1.2

rpenugo commented 5 years ago
imphil commented 5 years ago

OK, the problem that @towoe is still present for me on 2019.1.3. Opened a Xilinx bug report at https://forums.xilinx.com/t5/Synthesis/2019-1-3-Abnormal-program-termination-11-in-ElabSvlgScope/m-p/1027048, let's see what happens there.

towoe commented 5 years ago

Following @imphil's latest test I wanted to make sure my previous reply was valid so I tested Vivado 2019.1.3 again on the latest master (25eb480) and it failed as well! So I checked building with the revision I used the last time (06cad69) and creating the bitstream was working. I would assume the problem exists in all Vivado 2019.1.x versions but occurs only in certain designs. Let's see what the result of the bug report is.

imphil commented 5 years ago

Some more debugging:

So what to do next?

So I'm just going to wait until we go public and then report this to Xilinx again. If we run into issues with 2018.3 that force us to switch to 2019.1, we can use the workaround as shown above.

imphil commented 5 years ago

We have a PR with documentation on how to use Vivado 2019.1 at https://github.com/lowRISC/opentitan/pull/331. This can be re-opened once we have a confirmed working version of that tool.

tjaychen commented 5 years ago

@imphil thanks for investigating!

cc @rpenugo @gorusso in case you guys have other ideas.

towoe commented 5 years ago

Thanks @imphil for debugging. I guess we should put a note into the documentation marking Vivado 2019.1 not compatible and either with your description on how to circumvent the error or a link to the issue?

imphil commented 5 years ago

Good point. Let's just mark it as not compatible and link to this issue. Mind doing a PR for that?

towoe commented 5 years ago

I don't mind, will update the doc!

aytong commented 5 years ago

Seems like this issue can be marked as closed?

towoe commented 5 years ago

I think this issue should be kept open. We still should be able to use the latest Vivado version at some point in the future. And to keep track of the problem this issue is linked to from the documentation.

aytong commented 5 years ago

Ok, SG. Thanks for your input Tobias.

rajesh-s commented 5 years ago

Has this issue (with 2019.1) been reproduced on 2019.2 (released recently) as well? Was just getting started and from the docs page it wasn't clear if I can start with the most recent version

towoe commented 5 years ago

@rajesh-s, thanks for bringing this up. 2019.2 has not been tested by us. We recommend to use 2018.3. But if you want to test 2019.2 we would be happy get feedback on that.

mdhayter commented 5 years ago

I did one successful build over the weekend with 2019.2 (because the Xilinx installer was unable to download 2018.3). But from the hit-and-miss with 2019.1 that probably isn't enough to tell.

rajesh-s commented 5 years ago

@mdhayter I'm new to this project. Just started reading the docs yesterday. What FPGA board are you using?

imphil commented 5 years ago

He used the Nexys Video board