Comments (6)
It appears you are using the Xilinx tools here and have created your own build files (rather than the Altera/Quartus configuration that is in the repo). The Xilinx tools handle some cases in the language differently and apparently are more picky than the Quartus tools in this one. Specifically, the problem here seems to be that the Quartus tools will implicitly zero pad an assignment if the sizes aren't the same, whereas the Xilinx tools won't. In this case, the comparison result is 16 bits, but the writeback bus is 512 bits wide.
I don't have the Xilinx tools installed to test this, but I can suggest that you could pad the values out explicitly, something like:
writeback_value_nxt = vector_t'({496'd0, mcycle_vcompare_result});
or perhaps assign only the low bits, i.e.:
writeback_value_nxt[0] = {16'd0, mcycle_vcompare_result };
from nyuziprocessor.
It appears you are using the Xilinx tools here and have created your own build files (rather than the Altera/Quartus configuration that is in the repo). The Xilinx tools handle some cases in the language differently and apparently are more picky than the Quartus tools in this one. Specifically, the problem here seems to be that the Quartus tools will implicitly zero pad an assignment if the sizes aren't the same, whereas the Xilinx tools won't. In this case, the comparison result is 16 bits, but the writeback bus is 512 bits wide.
I don't have the Xilinx tools installed to test this, but I can suggest that you could pad the values out explicitly, something like:
writeback_value_nxt = vector_t'({496'd0, mcycle_vcompare_result});
or perhaps assign only the low bits, i.e.:
writeback_value_nxt[0] = {16'd0, mcycle_vcompare_result };
This is the process when I build this project. My settings are default. And I just try your method but no useful for this error like this below.
from nyuziprocessor.
Okay, I was thrown because this was in a directory called 'FPGA_ZYNQ_IC_Learn'. It looks like maybe this is failing in Verilator? Can you type the following on the command line?
verilator --version
from nyuziprocessor.
sry I just forgot telling you my environment, I work in the Ubuntu18.04 in WSL. The 'FPGA_ZYNQ_IC_Learn' directory is just a name which mounting on the disk. And the verilator version like below:
root@DESKTOP-355QV49:/mnt/g/FPGA_ZYNQ_IC_Learn/IC/learn_project/GPU/NyuziProcessor# verilator --version
Verilator 4.210 2021-07-07 rev v4.210
from nyuziprocessor.
Thanks, that's helpful. The issue appears to be that you have a newer version of Verilator installed on your system than this was originally built with, and the latest version is stricter about how it handles casting. I have modified the Verilog to do this more cleanly, and run unit tests against the old Verilator to ensure it didn't introduce regressions, but haven't been able to test against the new version of Verilator, so no guarantees. Please sync to the latest revision and try again.
(the setup.sh does attempt to install a compatible version of Verilator, but, if there is another version installed, that can take precedence. Another potential remedy, if my patch above doesn't work. would be to uninstall the other system version and rerun setup.sh to install the older version).
I hope that helps.
from nyuziprocessor.
Closing for now, as this should address the issue, but feel free to reopen if it is still a problem.
from nyuziprocessor.
Related Issues (20)
- Switch to github actions for CI build.
- Is this project going to support the openCL? HOT 2
- I saw a similar crash in the user_copy_fault test. HOT 2
- I want to use quartus to generate the RTL of GPU HOT 3
- Error building NyuziProcessor (probably NyuziToolchain) HOT 16
- Crash w/ latest version of Verilator
- Is there a problem with these lines of code in cache_lru.sv or is it just that I don't understand the algorithm? HOT 2
- Suggestions HOT 1
- hi how can i get linux driver HOT 3
- May be a icache miss thread still can be scheduled again? HOT 3
- Khronos ML summit HOT 2
- run_fpga command does not work properly for me HOT 6
- 00000000 Did not get ack for load memory, got c8 instead HOT 7
- setup_tools.sh failure HOT 10
- ./scripts/setup_tools.sh error on MAC M1 HOT 2
- Questions related to integration. HOT 1
- TARGET_FILE:llvm-strip : build error HOT 1
- Performance measure using hash program HOT 8
- solution of ASM compiler identification is unknown
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nyuziprocessor.