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

928 Commits

Author SHA1 Message Date
Andreas Olofsson
f5bb42dfe3 Moving axi cells to own folder 2015-12-04 03:38:26 -05:00
Andreas Olofsson
d5edb1ca88 Fixing priority on etx_arbiter
- don't do a combinatorial loopback on wait in a primitive cell, just bad practice...
- changed priority to give readback priority over read, safer?
2015-12-04 03:36:42 -05:00
Andreas Olofsson
de012ec9c8 Changes to oh common modules
- Converting some modules to be more ASIC friendly
2015-12-04 03:12:07 -05:00
Andreas Olofsson
eb8f6c1f51 Adding datagate power saving module 2015-12-03 18:05:08 -05:00
Andreas Olofsson
8464c3dcb0 Adding standby logic block 2015-12-03 18:04:46 -05:00
Andreas Olofsson
16b0655151 Name change for arbiter 2015-12-03 18:04:10 -05:00
Andreas Olofsson
b9107474a9 Vectorizing oh_clockgate 2015-12-03 18:03:02 -05:00
Andreas Olofsson
69d2c2c5fb Prettyfying csa port names 2015-12-03 18:01:47 -05:00
Andreas Olofsson
3a8f81d4a3 Changing single port memory to be ASIC friendly 2015-12-03 18:01:21 -05:00
Andreas Olofsson
7b8460b145 Fixing up issues with database reorg
- Not sure where the prog_full issue popped up from. (sign of disorganized databsae)
-
2015-11-30 15:07:28 -05:00
Andreas Olofsson
19fa611bb9 Massive reorganization to impove reuse
- adding more chip code
- pushing memory stuff into common
- making common "oh_" naming class
-
2015-11-30 13:45:49 -05:00
Andreas Olofsson
44bbaeb830 Fixed typo on MMU lookup.
-MMU now seems to work...
2015-11-29 19:10:46 -05:00
Andreas Olofsson
ddfeebd33f Cleaning up read response logic
- Bypass path was ugly! Always try to go through the same logic path as much as possible.
- Note: when MMU is enabled, you need to put in entry for read return (ie 810)
2015-11-29 19:07:28 -05:00
Andreas Olofsson
082593b2e9 Adding tests for mmu and remapping logic 2015-11-29 19:06:31 -05:00
Andreas Olofsson
7e49b29a79 Moving tests for idelay, mailbox, timeout from epiphany-examples
-Idea is to create complete packages
-All hardware modules should be complete, separation of tasks/sources can drive 10x in dev cost.
2015-11-29 12:44:22 -05:00
Andreas Olofsson
b58ceef19c Merge branch 'master' of https://github.com/parallella/oh 2015-11-29 12:42:24 -05:00
Andreas Olofsson
9ddd71024d Fixing system_bd interface for "mailbox_irq" signal 2015-11-29 12:41:53 -05:00
Andreas Olofsson
3ce9b41726 Working mailbox!
- Gating mailbox_not empty with irq_en. bit [28] of RXCFG
- Changing elink output interrupt to "or" of not_empty and full
- Adding mailbox status register (mostly for debug)
- Moving register addresses to make space for mailbox status register
- Fixing wrappers for DV
- Updating README docs with new register map
- Removing mailbox from RX status reg. Doesn't belong there, should be coupled with mailbox for modularity.
2015-11-29 12:20:17 -05:00
Andreas Olofsson
711088a9e7 Fixed mailbox bug on remap
- Bypassing remap on write to RX registers
- Otherwise the write to mailbox gets dropped since 810 gets remapped to 310
2015-11-29 12:10:53 -05:00
Andreas Olofsson
13005e6cbf Updated mailbox test
- Added mailbox status address
- Moved mailbox registers
2015-11-29 12:09:47 -05:00
Andreas Olofsson
03473c393f Merge pull request #22 from peteasa/AddMakefiles
Added Makefiles to make build easier
2015-11-29 11:23:43 -05:00
Andreas Olofsson
2ca649394b Adding timeout response code 2015-11-29 10:27:43 -05:00
Peter Saunderson
889b24d72e Added Makefiles to make build easier
Signed-off-by: Peter Saunderson <peteasa@gmail.com>
2015-11-29 14:44:21 +00:00
Andreas Olofsson
ad568ad0a0 Implementing simple 64K cycle timeout for slave interface 2015-11-28 22:31:39 -05:00
Andreas Olofsson
099dbececa Adding test for mailbox readback 2015-11-28 21:42:05 -05:00
Andreas Olofsson
c294ba7775 Fixing readback from mailbox 2015-11-28 21:41:18 -05:00
Andreas Olofsson
0fc4b6188a Test cleanup
- added lint script using verilator
- adding verilator filter commands for fifo behavioral
- Longer pushbacks in ememory
2015-11-28 20:15:06 -05:00
Andreas Olofsson
0b6f7f7efb Making wait default 0 2015-11-28 20:13:47 -05:00
Andreas Olofsson
1890657d6d Solved read response bug. MATMUL WORKS!!!!
- Turns out I was debugging ghosts for ~1 day today. Everything was working in simulation but nothing works in the FPGA. Since I was only changing small logic stuff, I didn't bother checking the warning messages in Viviado. Turns out for some reason it was throwing away some logic and disconnecting all the important rr signals
- This is where I was making changes, but I still can't figure out what exactly was happening...doesn't make sense. Either there is a bug in icarus or in vivado, this shouldn't happen!
2015-11-25 23:50:29 -05:00
Andreas Olofsson
08f5d28ed4 Test cleanup 2015-11-25 23:49:56 -05:00
Andreas Olofsson
8856f7c763 DV cleanup 2015-11-25 22:00:07 -05:00
Andreas Olofsson
045652cc10 Adding TXPACKET register to doc 2015-11-25 21:59:43 -05:00
Andreas Olofsson
d66317abbc Fixing bug for readback??
- There was definitely a bug there, that has been fixed
- But now the interface seems completely broken...
- Passes in simulation and "should work"...
2015-11-25 21:57:25 -05:00
Andreas Olofsson
379099da9c Filtering register write transactions
-They were going out on the elink (not safe)
2015-11-25 21:56:56 -05:00
Andreas Olofsson
33d5fb72e1 Filtering out short wait-low pulses from legacy elink
-Feels safer, should not be any short wait glitches
2015-11-25 21:55:37 -05:00
Andreas Olofsson
40c0c95791 Fixing clock transfer speedpath
- Better to do shift register than a wide or pulse
2015-11-25 21:54:02 -05:00
Andreas Olofsson
e5163d4d82 Adding debug logic to elink
- packet capture register
- transaction counter logic
2015-11-25 21:53:33 -05:00
Andreas Olofsson
909b6337d1 Adding README for etrace 2015-11-25 21:30:10 -05:00
Andreas Olofsson
9b41dade80 Adding test for etracer logic analyzer 2015-11-25 21:20:37 -05:00
Andreas Olofsson
4fe7a32be3 Adding a logic analyzer module for debugging 2015-11-25 21:19:55 -05:00
Andreas Olofsson
eb0ad74973 Adding testing/motnirot logic to link
- RX/TX satus registers with sticky bits
- monitor register for checking number of valid transactions
2015-11-25 12:50:02 -05:00
Andreas Olofsson
4228fccd56 Adding debug features to elink
- Adding RX/TX sticky monitors bits in STATUS register
- Adding burst enable bit for debugging. Turned off by default.
2015-11-25 10:18:02 -05:00
Andreas Olofsson
cc362ae72a Fixing DUT
- Adding read response pushback
- Adding random WAIT generation on memory
2015-11-24 09:11:19 -05:00
Andreas Olofsson
cedb494636 Changing coordinate of model
- Should really be parameter, for now it's 0x808
2015-11-24 09:10:26 -05:00
Andreas Olofsson
91f8e3db5a Complete redesign of the TX
- After finding the bug in the reference model and wasting countless hours going back and forth with FPGA timing optimization and bug tweaks, I realized that the  design was fundementally broken. The decision to use two clock domains (high speed) and low speed was correct from the beginning. The FPGA is dreadfully slow, (you definitely don't want to do much logic at 300MHz...), but the handoff between tclk and tclk_div4 was too complicated. The puzzle of having to respond to wait quickly, covering the corner cases, and meeting timing was just too ugly.
- The "new" design goes back to the method of using the high speed logic only for doing a "dumb" parallel to serial converter and preparing all the necessary signals in the low speed domain.
- This feel A LOT cleaner and the it already passes basic tests with the chip reference and the loopback after less than 3 hours of redesign work!
- The TX meets timing but there is still some work to do with wait pushback testing.
2015-11-24 01:12:07 -05:00
Andreas Olofsson
8915fd6dfd Adding environment for chip reference model
- Turns out I had a nasty bug that was masked by using my own RX to loopback the TX. Since the new RX is very benign with a  programmable fifo full flag the timing is quite relaxed.
- The legacy elink for e16 has a strict wait policy. When wait is raised high, you must stop pretty much immediately.
- I struggled with testing this bug on the parallella for 2 days.
- Putting together the test environment uncovered the bug in a couple of hours. F**K, I should know better!!
2015-11-24 01:07:49 -05:00
Andreas Olofsson
a8b6ed1d5a Adding more test vectors for elink 2015-11-24 01:06:52 -05:00
Andreas Olofsson
65708a2be9 Added wait generator for fifo (experimental)
- found it very difficult to get to some of the hard to reach scenarios
- the wait circuit helps generate fifo full
- off by default!
2015-11-24 01:05:04 -05:00
Andreas Olofsson
162cb022f9 Adding pushback circuit to stimulus 2015-11-24 01:04:14 -05:00
Andreas Olofsson
d6499aa918 Use parameter to generate random wait statement
- Needed for multi instantiation
2015-11-24 01:03:04 -05:00