-
Notifications
You must be signed in to change notification settings - Fork 692
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
[Pmp] Verif plan TXT #2457
Open
CoralieAllioux
wants to merge
192
commits into
openhwgroup:feature/pmp_when_no_mmu
Choose a base branch
from
boschglobal:pmp/verif_plan_txt
base: feature/pmp_when_no_mmu
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
[Pmp] Verif plan TXT #2457
CoralieAllioux
wants to merge
192
commits into
openhwgroup:feature/pmp_when_no_mmu
from
boschglobal:pmp/verif_plan_txt
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Specify CV-X-IF version supported: 1.0.0. Mention of B extension (with includes the Zb* extensions, already in the specification). Make FENCE.T as a "should" instead of "shall" as we do not have plans to integrate it yet.
…Factorization algorithm , improve csr_updater.yaml, add spike support (openhwgroup#2372)
✔️ successful run, report available here. |
Added to this pull request are some PMP tests along with the Verif Plan integrated in VP_TOOL. Weird that CI is failing as no RTL has been updated and the PMP tests are not integrated into the regression scripts |
…p#2587) If Hypervisor extension is enabled, the logic required to properly trap to S mode is currently excluded. Fix this by adjusting the if block.
…enhwgroup#2587)" (openhwgroup#2594) This reverts commit 485c382.
The simu-gate ci job was broken since a while. This PR fixes it.
Add failures checks in `.gitlab-ci/scripts/report_tandem.py`: * catch wrong or missing log directory * catch wrong yaml reports
Additional fix to openhwgroup#2392
First step to add FpgaAltera optimization parameter
* Fill docs/design/design-manual/source/cva6_issue_stage.adoc * Add variables to docs/design/design-manual/source/design.adoc * Update port doc comments in core/issue_stage.sv, core/issue_read_operands.sv and core/scoreboard.sv
…p#2599) If Hypervisor extension is enabled, the logic required to properly trap to S mode is currently excluded. Fix this by adjusting the if block.
The first optimization for Altera FPGA is to move the instruction queue to LUTRAM. The reason why the optimization previously done for Xilinx is not working, is that in that case asynchronous RAM primitives are used, and Altera does not support asynchronous RAM. Therefore, this optimization consists in using synchronous RAM for the instruction queue and FIFOs inside wt axi adapter. The main changes to the existing code are: New RAM module to infer synchronous RAM in altera with independent read and write ports (SyncDpRam_ind_r_w.sv) Changes inside cva6_fifo_v3 to adapt to the use of synchronous RAM instead of asynchronous: When the FIFO is not empty, next data is always read and available at the output hiding the reading latency introduced by synchronous RAM (similar to fall-through approach). This is a simplification that is possible because in a FIFO we always know what is the next address to be read. When data is read right after write, we can’t use the previous method because there is a latency to first write the data in the FIFO, and then to read it. For this reason, in the new design there is an auxiliary register used to hide this latency. This is used only if the FIFO is empty, so we detect when the word written is first word, and keep it in this register. If the next cycle comes a read, the data out is taken from the aux register. Afterwards the data is already available in the RAM and can be read continuously as in the first case. All this is only used inf FpgaAlteraEn parameter is enabled, otherwise the previous implementation with asynchronous RAM applies (when FpgaEn is set), or the register based implementation (when FpgaEn is not set).
* Disable tandem on riscv-tests-v testlist * More relevant error message on report tandem script Related issue: openhwgroup#2605
…2621) * cva6 refactor & cleanup to enable tandem reports generation for elf tests such as testelf for simu-gate: 1. merge redundant functions to run directed tests in `cva6.py` (`run_c`, `run_elf`, `run_assembly` -> `run_test`) 2. removed broken and unused functions by the way (`run_c_from_dir`, `run_assembly_from_dir`) * collect sim reports of simu-gate job to display them in the cva6 dashboard :⚠️ the simu gate job will still fail but the result on the dashboard will be accurate and will allow debugging
Integrating the modifications to the AXI agent made by CEA
Improving frontend documentation
…ly. (openhwgroup#2624) Update riscv-config spec files and Spike Yaml file for CV32A65X. Bump CVV to change Spike default PMP granularity to 8 and to include corresponding Spike Yaml parameter.
The second optimization for Altera FPGA is to move the BHT to LUTRAM. Same as before, the reason why the optimization previously done for Xilinx is not working, is that in that case asynchronous RAM primitives are used, and Altera does not support asynchronous RAM. Therefore, this optimization consists in using synchronous RAM for the BHT. The main changes to the existing code are: New RAM module to infer synchronous RAM in altera with 2 independent read ports and one write port (SyncThreePortRam.sv) Changes in the frontend.sv file: modify input to vpc_i port of BHT, by advancing the address to read, in order to compensate for the delay of synchronous RAM. Changes in the bht.sv file: This case is more complex because of the logic operations that need to be performed inside the BHT. First, the pc pointed by bht_update_i is read from the memory, modified according to the saturation counter and valid bit, and finally written again in the memory. The prediction output is given based on the vpc_i. With asynchronous memory, the new data written via update_i is available one clock cycle after writing it. So, if vpc_i tries to read the address that was previously written by update_i, everything is fine. However, in the case of synchronous memory there are three clock cycles of latency (one for reading the pc content (read port 1), another one for writing it, and another one for reading in the other port (read port 0)). For this reason, there is the need to adapt the design to these new latency constraints: First, there is the need for a delay on the address write of the synchronous RAM, to wait for the previous pc read and store the right modified data. Once this is solved, similarly to the FIFO case, there is the need for an auxiliary buffer that will store the data written in the FIFO, allowing to have it available 2 clock cycles after the update_i was valid. This is because after having the correct data, the RAM takes 2 clock cycles until data can be available in the output (one clock cycle for writing and one for reading). Finally, there is a multiplexer in the output that permits to deliver the correct prediction providing the data from the update logic (1 cycle of delay), the auxiliary register (2 cycles of delay), or the RAM (3 or more cycles of delay), depending on the delay since the update_i was valid (i.e. written to the memory).
…group#2627) CSR are no more described in CV32A6_Control_Status_Registers.html
✔️ successful run, report available here. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR aims at resolving task #1447
Here's a first version of the Verification Plan of PMP, in txt format.
It is split in 2 files:
VPTool format is undergoing on our side.
We'd like to share already the content to get first feedbacks.