Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Illegal configuration created by config.mk #89

Open
moimfeld opened this issue Jun 27, 2022 · 2 comments
Open

Illegal configuration created by config.mk #89

moimfeld opened this issue Jun 27, 2022 · 2 comments
Labels
bug Something isn't working

Comments

@moimfeld
Copy link
Contributor

Hi @michael-platzer,

when using the VPORT_POLICY=many policy, the Makefile can generate configurations where the maximum PIPE_W is equal to VREG_W.
When one PIPE_W is equal to VREG_W then the MAX_OP_W of one vproc_pipeline is also equal to VREG_W. This will trigger the fatal error below:

if ((MAX_OP_W & (MAX_OP_W - 1)) != 0 || MAX_OP_W < 32 || MAX_OP_W >= VREG_W) begin
$fatal(1, "The vector pipeline operand width MAX_OP_W must be at least 32, less than ",
"the vector register width VREG_W and a power of two. ",
"The current value of %d is invalid.", MAX_OP_W);
end

The following lines in the config.mk cause this "issue":

VPROC_PIPELINES ?= $(VMEM_W):VLSU,VALU,VELEM $(VPIPE_W_VMUL):VMUL,VSLD

vicuna/config.mk

Lines 67 to 70 in d3c1cf8

ifeq ($(VPORT_POLICY), many)
VPIPE_W_DFLT := $(VREG_W)
VPIPE_W_VMUL := $(VREG_W)
else

@michael-platzer michael-platzer added the bug Something isn't working label Jul 4, 2022
@michael-platzer
Copy link
Contributor

@moimfeld Thanks for reporting! Two units are still causing problems when the operand width equals the register width, but I am working on resolving this and will then change this fatal error to only trigger if the operand width is larger than VREG_W.

@Aravind-kris
Copy link

Aravind-kris commented Mar 15, 2024

@moimfeld Thanks for reporting! Two units are still causing problems when the operand width equals the register width, but I am working on resolving this and will then change this fatal error to only trigger if the operand width is larger than VREG_W.

Did you solved it ? Please let me know.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants