Fixes for Synthesis, Logic, and Verification#52
Fixes for Synthesis, Logic, and Verification#52ridash2005 wants to merge 9 commits intoadam-maj:masterfrom
Conversation
Fixed multiple driver issues in controller.sv, typo in dcr.sv, and syntax error in gpu.sv. Updated dispatch.sv to use non-blocking assignments.
Converted core.sv internal reg signals to wire. Fixed scheduler.sv to use Thread 0 PC to avoid inactive thread issues.
Fixed dcr.sv port comma, scheduler logic variable scope, and parameter syntax.
Removed docs/CHANGELOG.md and docs/DESIGN_FIXES.md from git tracking but kept locally. Added to .gitignore.
1. Logic & Race Condition FixesDispatcher (
|
Summary of Changes
This PR addresses critical logic flaws in the instruction dispatcher, fixes structural SystemVerilog syntax errors for synthesis compatibility, and updates the
cocotbverification environment for modern API support.1. Critical Logic & Race Condition Fixes
blocks_dispatchedwas not updating correctly due to non-blocking assignments inside a loop. This prevented proper block scheduling. Implemented a temporary variable to correctly accumulate dispatched blocks in a single cycle.device_conrol_register→device_control_register) and corrected port declarations to ensure proper synthesis.2. Structural & Syntax Improvements
core_lsu_*signals fromregtowire. These signals are driven by submodule instances, and declaring them asregwas structurally incorrect.3. Verification Environment Updates
Clockinstantiation to use the correctunitparameter (replacingunits).int()casts for signal handles to preventTypeErrorexceptions during arithmetic operations in simulations.