Giter Club home page Giter Club logo

Comments (6)

jbush001 avatar jbush001 commented on June 16, 2024

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.

Be997398715 avatar Be997398715 commented on June 16, 2024

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.
image
image
image

from nyuziprocessor.

jbush001 avatar jbush001 commented on June 16, 2024

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.

Be997398715 avatar Be997398715 commented on June 16, 2024

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.

jbush001 avatar jbush001 commented on June 16, 2024

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.

jbush001 avatar jbush001 commented on June 16, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.