1
0
mirror of https://github.com/KastnerRG/riffa.git synced 2025-01-30 23:02:54 +08:00

17 Commits

Author SHA1 Message Date
Dustin Richmond
c420b76c16 Finishing reset logic and testing/implementing across a wide swath of boards.
Changes are mostly in the RX logic, where RST_IN was still used, though some new
logic (reset_extender) was added to riffa.v. Updated projects for: VC709, VC707,
ZC706 (partial), NetFPGA, ADM-7V3, ML605 (Still not working), AC701 (Untested)
and KC705 (Untested)
2015-08-12 16:16:27 -07:00
Dustin Richmond
f0efc47981 Adding preliminary VCU108 and KCU105 projects.
Also fixed a warning in the riffa.v file where a /* was in a comment
2015-07-31 15:19:52 -07:00
Dustin Richmond
ff9d11d2c1 Fixed two bugs, one in riffa.v, one in tx_data_fifo.v
In riffa.v, the interrupt module was getting data from the TXC_DATA, which didn't match the assertion of the ready signal from the registers module. Changed to _wTxcData.

In tx_data_fifo.v, changed the DATA_READY signal to connect to the fifo instead of the packet counter.

In the tx_engine, removed the curious case of the +1 in the data fifo packet depth
2015-07-30 13:35:48 -07:00
Dustin Richmond
dc93333b9c Fixing a bug in the tx_data_fifo where the data fifo was not large enough.
The error occured when calculating the actual header fifo depth,
C_ACTUAL_FIFO_DEPTH. This was initially clog2(C_FIFO_DEPTH), but should have
been 1<<clog2(C_FIFO_DEPTH).
2015-07-29 08:33:11 -07:00
Dustin Richmond
5058a758fc Adding timing improvements to tx_alignment pipeline.
This does not fix the user bug, which occurs in the 64-bit interface. I suspect
this is a data under-read/over-read error in the data fifo but I have yet to
confirm it.
2015-07-27 19:26:55 -07:00
Dustin Richmond
1254f44441 Adding graceful reset logic to the RIFFA core. 2015-07-27 10:31:16 -07:00
Dustin Richmond
924d52e6ab Finalized reset logic in the classic engines (see previous commit) 2015-07-23 09:56:44 -07:00
Dustin Richmond
31b82c1777 Adding graceful reset logic to the Ultrascale TX Engines
The graceful reset logic splits the RST_IN port into the RST_BUS and RST_LOGIC
ports. The RST_BUS port is for when the entire PCIe (or whatever) bus is
undergoing reset and the RIFFA logic should not worry about corrupting any state
by terminating a packet early (causing a malformed packet). RST_LOGIC is for logic resets, where PCIe state is not affected and may be corrupted by a malformed packet.
2015-07-22 17:29:35 -07:00
Dustin Richmond
505c72d16f Adding new reset_controller.v file.
The reset_controller module will safely reset a single stage pipeline without
using an asychronous reset (bleh). It is intended for use in the TX engines,
where it will control the output stage of the engine, and provide a gracefull
end-of-packet reset.
2015-07-22 17:25:09 -07:00
Dustin Richmond
e2f3abe01b Fixed a bug in RIFFA 2.2 for the Classic Xilinx 128-bit interface.
Bug caused received 128-bit Request Headers without payload to signal data word valid one cycle early. May not be a final fix. Unlikely to affect current users.
2015-07-21 15:46:36 -07:00
Dustin Richmond
5be7627910 Added a S_AXIS_**_TREADY Check on the reset logic in the ultrascale engines. 2015-07-17 16:54:06 -07:00
Dustin Richmond
ad90d61584 Finished wiring reset logic in the Engine Layer (untested)
Expanded DONE_RST into four signals, for each of the four engine interfaces. In
the ultrascale engines, wired up all of the RST and DONE_RST signals. Quickly tested the logic in a power-on-reset like situation, no guarantees on graceful in-transmission resets. Classic engines will have to wait.
2015-07-16 16:26:05 -07:00
Dustin Richmond
5ee3747243 Replaced RST_IN with RST_BUS and RST_LOGIC and addded DONE_RST in top level engine layer files.
Still need to propagate the changes and hook the resets up in the formatters,
multiplexers, etc. RST_BUS will be the equivalent of a PCIe PERST Pin reset, a
general inelegant reset where formatting is disregarded. RST_LOGIC is a reset
caused by application or higher level logic, where formatting needs to be
considered so that the bus does not lock up. DONE_RST will signal that the
engine layer has finished resetting, and is ready to transmit data.
2015-07-16 12:07:04 -07:00
Dustin Richmond
744953c2ad Adding resetter.v, a new module that controls the reset logic in riffa.v.
This logic will allow us to reset the TX pipeline safely, and still transmit the
status completion. This is a feature requested by the NetFPGA team.
2015-07-15 17:27:17 -07:00
Dustin Richmond
d5f3ba7309 Added a parameter C_VALUE to shiftreg.v and changed all declarations.
The C_VALUE parameter sets the reset value of each bit in the shift
register. All bits will get the same value, individual setting of reset values
is not implemented.
2015-07-15 17:26:00 -07:00
Dustin Richmond
84ebc073f1 Fixed a small bit-width related issue in counter.v.
Fixed to satisfy linter. No change in functionality.
2015-07-15 16:44:50 -07:00
Dustin Richmond
98b09aa12a Initial commit of RIFFA development repository (RIFFA 2.2) 2015-05-04 14:50:57 -07:00