Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Recent content by groover

  1. G

    Best Way to Implement Shared RAM

    Many thanks for all your help ads-ee! I have decided to go with the trickle-down parameters like you suggested. I already have a basic version implemented.
  2. G

    Best Way to Implement Shared RAM

    They won't need to write to the same bit at any time. For example TXBUSY would only be written by the Tx module.
  3. G

    Best Way to Implement Shared RAM

    Sorry, no, I miswrote. There will never be two modules that need to write the same bit at the same time (hence the merged A/B write), however one module may write it and another module may read it. This is in addition to read access via the "external" interface to my core.
  4. G

    Best Way to Implement Shared RAM

    Thanks for the feedback! I need to change it so that ports 1 and 2 can write at the same time if their addresses are different. If port 0 writes to the same address as 1 or 2 then ports 1 or 2 get priority as I mentioned in a previous post about simplifications. Here is my issue and perhaps...
  5. G

    Best Way to Implement Shared RAM

    OK, thanks. Here is what I have come up with. This is inside a clocked block: // writing - port 0 if (Write_0) begin if (Address_0 < `REG_NUMBEROFREGISTERS) begin Registers[Address_0 * 8 +: 8] <= DataIn_0 & WriteMasks[Address_0 * 8 +: 8]; end end // if writing on ports 1 and 2 at the...
  6. G

    Best Way to Implement Shared RAM

    vGoodtimes has exactly what I was thinking. I will post my code when I have tested it this evening or tomorrow. Meanwhile I am working on the masked write part for ports A and B. Essentially what I want to do is a read-modify-write in a single clock cycle. Here is my code: Registers[Address_1 *...
  7. G

    Best Way to Implement Shared RAM

    Thinking about this a bit more I am wondering if I can make some simplifications. 1. A and B modules will never need to write to the same bit. 2. Any bits that A and External can write to or B and External can write to should give External the lowest priority I was therefore thinking that if...
  8. G

    Best Way to Implement Shared RAM

    Sorry, I shouldn't have used the term 'RAM'. This is implemented using flip-flops, as an array of groups of eight. reg [(8 * `NUMBEROFENTRIES) - 1:0] Registers; It sounds like I am not trying to do something completely wacky, which is good. :)
  9. G

    Best Way to Implement Shared RAM

    I have a module defining some memory, e.g. an array of 8-bit wide registers. These have read/write access from outside my core ("external") using a typical 8-bit-wide bus. From inside my core ("internal") I have two modules A and B that also need read/write access, however for some registers...
  10. G

    Definitions for a Memory in Verilog

    Hello, using Verilog and I am creating a 'memory', e.g.: reg [7:0] registers [0:4]; This memory is read/write accessible via a bus, and some of the bits will be read only and some will be write only. I am trying to construct a "core-wide" set of definitions to use throughout my core so I can...
  11. G

    Verilog Synchronize with External Signal

    Hi, I am learning Verilog and struggling with an aspect. I have an 8MHz clock and I have an external signal called Rxd. I need to detect a falling edge on this signal and reset a counter. It could be anywhere from ns to hours before the falling edge appears. I have: reg Rxd_Buf; always @...
  12. G

    Review of First PCB Layout

    Thanks Matty - lots of good suggestions, which I will implement. I'm learning a lot!
  13. G

    Review of First PCB Layout

    The best I can do is remove the copper pours. Here it is. Thanks for the suggestion about the grounds on the decoupling caps. I've made some tweaks to hopefully improve that.
  14. G

    Review of First PCB Layout

    Here is how it looks now. I decided to stay with the thermal spokes for the pads, but removed them for the stitching vias. I don't see any easy way of increasing the thickness of tracks entering/leaving pads in my software. I would have to create small track segments and individually...
  15. G

    Review of First PCB Layout

    Thanks again for all the great feedback!

Part and Inventory Search

Back
Top