Commit Graph

7 Commits

Author SHA1 Message Date
Sean Anderson c02d3f3ad0 pmd_io: Calculate wraparound based on state and not state_next
Basing the wraparound calculation on state_next is causing problems for
timing. Do it with the state calculations instead. We need to add
another cycle of latency to make this work, since we can't output the
data correctly without knowing the wraparound.

Signed-off-by: Sean Anderson <seanga2@gmail.com>
2022-10-30 20:58:18 -04:00
Sean Anderson 2d8caf575d pmd_io: Use single-ended inputs
These inputs were incorrectly marked as LVDS, which was causing problems
for placement. Make them single-ended.

Signed-off-by: Sean Anderson <seanga2@gmail.com>
2022-10-30 20:57:04 -04:00
Sean Anderson 3ec1f4d77d Automatically dump signals
While manually dumping signals with a macro works OK for standalone
modules, it doesn't work when multiple modules are included. Instead,
create a second top-level module to dump signals. Inspired (once again)
by [1].

[1] https://github.com/steveicarus/iverilog/issues/376#issuecomment-709907692
Signed-off-by: Sean Anderson <seanga2@gmail.com>
2022-10-30 14:20:48 -04:00
Sean Anderson 2ce7dc016b pmd_io: Align signal naming with other_io modules
This aligns the signal naming with what is used by other modules (IEEE
names for external signals, and something else for internal).

Signed-off-by: Sean Anderson <seanga2@gmail.com>
2022-10-16 18:39:33 -04:00
Sean Anderson 548e5b5b51 Convert all reg assignments to initial
As it turns out,

	reg foo = 0;

is not the same as

	reg foo; initial foo = 0;

but instead is equivalent to

	reg foo; always @(*) foo = 0;

This is rather silly. Convert all existing (lucky) examples to the
second form.

Signed-off-by: Sean Anderson <seanga2@gmail.com>
2022-10-16 17:48:43 -04:00
Sean Anderson 2832c79ff0 pmd_io: Switch to single-ended tx signal
The singal-ended to differential conversion will be done by the
transceiver (by the ECL interface circuit).

Signed-off-by: Sean Anderson <seanga2@gmail.com>
2022-10-16 17:42:17 -04:00
Sean Anderson ead545e85e Rename pmd to pmd_io
This better reflects the function of the module (interfacing the
transciever via the I/O pins), and fits better with the naming scheme
used for other I/O modules.

Signed-off-by: Sean Anderson <seanga2@gmail.com>
2022-08-28 17:25:24 -04:00