1
0
mirror of https://github.com/aolofsson/oh.git synced 2025-01-17 20:02:53 +08:00

612 Commits

Author SHA1 Message Date
Andreas Olofsson
02b22a36f3 Fixing test to conform to new stimulus format 2015-11-02 20:51:03 -05:00
Andreas Olofsson
bd16558f73 Merge pull request #11 from olofk/master
Remove emmu testbench from edma
2015-11-02 19:37:10 -05:00
Andreas Olofsson
2b67e0007a Updated simulation instructions 2015-11-02 19:28:00 -05:00
Andreas Olofsson
96abfe3105 Initial register test (still debugging) 2015-11-02 19:27:41 -05:00
Andreas Olofsson
a3b0d9b75c Fixing pushback bug
* Fixed pushback bug at fifo (DUH!)
* Need to verify random pushback at all tx/rx ports
2015-11-02 16:16:10 -05:00
Andreas Olofsson
ff3af0b21c Fixing include files for emailbox
- All "folders" should be independent
2015-11-02 16:15:20 -05:00
Andreas Olofsson
22714f3d9d Adding new emesh format files
* Adding an improved monitor file
* Adding mesh interface (avoids crud logic at top level)
* A emesh packet memory module
2015-11-02 16:14:08 -05:00
Andreas Olofsson
983c4db449 Link cleanup
- Using new packet interface
- Adding active signal, indicating that link is ready. This way you don't need to guess when the link is ready (no magic constants)
- Removed register on por reset input to get rid of x on startup.
2015-11-02 16:10:05 -05:00
Andreas Olofsson
ec9c3d9e44 Delete old files 2015-11-02 16:08:14 -05:00
Andreas Olofsson
34d379ecb9 Adding new "simpler" test infrastruture
- build elink with one command
- place all tests in tests/ directory
- new stimulus format followed
- dut_elink.v created
2015-11-02 16:04:46 -05:00
Andreas Olofsson
af6bebe18a Adding language on licensing 2015-11-01 17:09:12 -05:00
Andreas Olofsson
7f8b95eafd Fixing typos 2015-11-01 16:48:58 -05:00
Andreas Olofsson
97dfc3eeaf Adding descriptions 2015-11-01 16:47:40 -05:00
Andreas Olofsson
62f5490f6b Adding missing file for emailbox 2015-11-01 16:45:39 -05:00
Andreas Olofsson
581c2943f5 Fixing pushback bug in emmu
- reset was broken!
- need to account for wait
- merging read/write wait for simplicity, otherwise you would need to reset the packets to figure out if it's a read or write transaction...and I don't want to reset every packet throughout the pipe.
2015-10-19 11:08:28 -04:00
Olof Kindgren
0a2f7ddd5b Remove emmu testbench from edma
The edma dv directory contained a copy of the emmu testbench instead
of an edma testbench
2015-10-16 16:04:30 +02:00
Andreas Olofsson
028ba93ea7 Adding more items (work in progress) 2015-10-15 11:00:52 -04:00
Andreas Olofsson
18bccb3442 Adding verilog faq 2015-10-14 23:11:07 -04:00
Andreas Olofsson
b19f04cfd7 Updating clocking documentation 2015-10-08 10:45:43 -04:00
Andreas Olofsson
85cc46567a Removing reset 2015-10-08 10:45:27 -04:00
Andreas Olofsson
95c4f8f029 Putting pack wait logic 2015-10-08 10:43:28 -04:00
Andreas Olofsson
2b2827d1f4 Removing reset from pipeline 2015-10-08 10:41:27 -04:00
Andreas Olofsson
8a9b2e1b76 Separating rd/wr reset signals (proper) 2015-10-08 10:40:29 -04:00
Andreas Olofsson
d275406aa6 Reset timing optimization
- holding rx in reset state until tx is done
- removing reset from all pipeline registers
- removing reset from oddr/iddr
- the idea is to keep things quiet not to block in lots of places. The only real block needed is in the FIFO to keep "noise" from propagating past the link. The link should be kept in a safe reset state until the rx fram is stable and the clock is running so that the pipe can be cleaned out.
2015-10-08 10:34:59 -04:00
Andreas Olofsson
6d2b3d63fe Improving sys_reset timing
- removing pass through path
- registering sys_reset input
2015-10-08 10:33:38 -04:00
Andreas Olofsson
86e8579e48 Adding testmode for RX 2015-10-07 21:58:50 -04:00
Andreas Olofsson
e1f17b2fa1 Fixing PLL feedback path 2015-10-07 21:58:30 -04:00
Andreas Olofsson
d7ba590250 Changing back to sync for iddr
-not sure what to do here!!!
2015-10-07 21:58:06 -04:00
Andreas Olofsson
cd597cd5b1 Fixing RX reset (again!)
-async assert
-sync deassert
2015-10-07 20:37:49 -04:00
Andreas Olofsson
ccad681b0e Fixing testbench for new clocks
- Yay! Lots of logic removed
- elink passes again!!!
2015-10-07 19:21:36 -04:00
Andreas Olofsson
f42b34ea3c Moving back to async reset 2015-10-07 19:21:04 -04:00
Andreas Olofsson
c60f9236da Adding hack model for RDY signal
-should probably last for more cycles thatn this?
2015-10-07 19:18:54 -04:00
Andreas Olofsson
0a73ff3fc5 Adding dynamic tap value behavior 2015-10-07 19:18:27 -04:00
Andreas Olofsson
8c9fea0362 Adding async reset behavior 2015-10-07 19:17:59 -04:00
Andreas Olofsson
13bee36d88 Fixing reset behavioral bug 2015-10-07 19:17:35 -04:00
Andreas Olofsson
028bf19382 TX clock and reset cleanup
- more modular
- two bits cominng from sys_clk elink config domain
- drives the tx and rx from top level elink
- from software you would probably write 2'b11 to reset both at same time
2015-10-07 19:15:29 -04:00
Andreas Olofsson
0f24486a5f RX reset/clocking cleanup
- Making all resets async since we cannot guarantee that we have a clock coming in from RX. This is needed due to the way we use a PLL for alignment. If we would have used a free running local clock this would have been different, but this would have required a FIFO for synchronization betwen the rx and rxdiv4 clock.
- Moving the clock block into the RX for modularity
- Making a specil rx soft reset (driven from sys_clk domain)
- Still there is a POR_reset so the link should wake up ok
2015-10-07 19:12:57 -04:00
Andreas Olofsson
bd2a687412 Cleaning up TX reset
- sync on logic
- async on ODDR logic
- moving sync logic to clock block
2015-10-07 19:12:01 -04:00
Andreas Olofsson
4477f55cf5 Separating clocks for tx/rx
- more modular, understandable, reusable
2015-10-07 19:08:32 -04:00
Andreas Olofsson
947a804c62 Making reset async
- making ecfg_elink reset only depend on por (otherwise chicken and egg)
-
2015-10-07 14:46:12 -04:00
Andreas Olofsson
634b1f81f0 Making reset async 2015-10-07 12:06:30 -04:00
Andreas Olofsson
a39966d9f1 Adding IP for fifo 2015-10-07 12:04:50 -04:00
Andreas Olofsson
ad41b25e42 Making reset async 2015-10-07 12:04:15 -04:00
Andreas Olofsson
8311e4a04e dummy 2015-10-07 11:58:35 -04:00
Andreas Olofsson
790480bedd Adding dummy cells 2015-10-07 11:57:52 -04:00
Andreas Olofsson
d7d959da45 Adding software programmable IDELAY
- This is DEFINITELY the way to do things, sweep the delays and find the right value. No f'ing way to get these stupid FPGAs to work otherwise with the ridiculuosly over margined PVT nubmers they are running through the STAs. I understand they want to make the design bullet proof, but as a result designers are wasting countless hours overoptimzinng designs and being clever. So much performance is left on the table for expert users.
- Lesson: I/O design should be "self syncrhonizing". Only contraints in the design should be create_clk
- Made RX clock async, too tricky to guarantee that there clock is there.  No way to do this if the clock sources are actually independent for RX/TX!
2015-10-07 11:49:46 -04:00
Andreas Olofsson
8bba86d6cd Adding static phase shif ton RXCLK
-this becomes irrelavent once we have the dynamic idelay on input
2015-10-07 08:57:50 -04:00
Andreas Olofsson
394920a1e7 Addding phase delay tracking
- As a dirty a model hack as they come, using positive and negative edge of CLKIN to sample the signal and phase align the clock output.
- Will only work with div 2/4/8 etc
- There may be other issues, have to think about it...
- But the test now passes cleanly and the clocks look good.
2015-09-30 13:40:11 -04:00
Andreas Olofsson
6428f5ee46 Driving clocks from MMCM instead of from BUFIO 2015-09-30 13:00:45 -04:00
Andreas Olofsson
902ef1b7dd Removing hack on rx clock 2015-09-30 13:00:14 -04:00