Skip to content

Conversation

@Max042004
Copy link

@Max042004 Max042004 commented Jan 10, 2026

Since FPGA on-board memory has one cycle latency. So InstructionFetch stage is necessary to split to IF1 and IF2, then instruction address ports splits to two different ports:
instruction_req for IF1
instruction_address for IF2.

Then from InstructionFetch module to Top module, all connecting ports also need to modify correspondingly.

There are two options for implementation:

  1. Like this PR, separates to /fpga and /verilator for modified files in /riscv/core and /board.

  2. branch logic for fpga and verilator directly in original code. Preventing separating source code in two different places.

Since FPGA on-board memory has one cycle latency. So
InstructionFetch stage is necessary to split to IF1 and IF2, then instruction
address ports splits to two different ports:
instruction_req for IF1
instruction_address for IF2.

Then from InstructionFetch module to Top module, all connecting ports also
need to modify correspondingly.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant