These modules have a number of stylistic problems and poor documentation. Currently they do seem to work as intended but are something of a blackbox. Refactoring is worthwhile but low priority.
axis_gmii_tx.sv:
- The FSM transition logic is described by a
always @* block that is over 200 lines and includes logic for driving outputs
- The some
logic types are not reset
- Many flops sharing one processes
- Very little documentation for comments
axis_gmii_rx.sv:
- Inconsistent formatting, bad style, no comments
- Many
logic types without reset
- Many flops sharing one process
- FSM transition logic and output logic described in the same
always @* block
- Excessive reliance on processes over explicit combinational logic
- Not clear what the distinction is between
error_bad_frame, error_bad_fcs, and m_axis_tuser
These modules have a number of stylistic problems and poor documentation. Currently they do seem to work as intended but are something of a blackbox. Refactoring is worthwhile but low priority.
axis_gmii_tx.sv:always @*block that is over 200 lines and includes logic for driving outputslogictypes are not resetaxis_gmii_rx.sv:logictypes without resetalways @*blockerror_bad_frame,error_bad_fcs, andm_axis_tuser