These scripts allow to run the vivado simulator, xsim, from the command line in a single or multiple monitor setup.
- A linux terminal, Windows Subsystem Linux (WLS) or cygwin
- Xilinx Vivado 2018.3 and Xilinx Software Development Kid (SDK)
vivadoandxsimmust be executable via a terminal- This may require you to add
source /tools/Xilinx/Vivado/2018.3/settings64.shto your~/.bashrcfile. Please note you will need sudo privilages to update this file.
- GNU Make tool
- Xephyr
- Openbox
- obmenu - may or may not be necessary but it was what was in the example I followed
run.sh : single bash script to run the whole simulation
└─── compile.sh : compiles the rtl and tb code using xvlog, xvlog -sv, xvhdl as needed
└─── elaborate.sh : elaborates the tb design and creates a snapshot of the design using xelab
└─── simulate.sh : performs the simulation using xsim
| └─── waves.tcl : configures the waves for the simulation
- Run
make(multiple monitors) ormake run(single monitor) depending on monitor configuration. Please refer to "make help" for more details.
Vivado has a multiple monitor issue AR#72614 which is still present in xsim even after applying the patch of AR#72614. The issue stems from a "Window must not be zero" issue due to a well documented java bug. To address this issue with my code and monitor setup, the make file creates a virtual display using Xephyr and Openbox. Xsim is then forced to open into this virtual display so that it believes there is only one display/monitor. The simulation executes and runs nominally.
Xilinx References:
- Vivado 2019.1 java error on start_gui with multiple monitors attached (Ubuntu 18.04)
- 2018.3 Vivado - Cannot start the Vivado GUI Multiple Display Issue: IllegalArgumentException: Window must not be zero
- Vivado 2018.3 xsim crash on multiple monitors <-- my post
Copyright 2021 Aaron Pitcher
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.