• Content Count

  • Joined

  • Last visited

Everything posted by [email protected]

  1. @Stone, The SDSPI controller is supported by the FATFS library. The necessary glue functions can be found in the software directory. The f_mount, f_open, and f_read functions are part of the FATFS library, so yes, they are supported. Dan
  2. @sneha, The project is still there, I just merged the autoarty branch into the mainline. You can find my example project here. Dan
  3. @zygot, You and I are reading this question very differently. It started out as, can I get a design that uses DDR3 without microblaze. I think that question has already been answered. The new question is how to get a design containing a MIG based DDR3 controller to operate in a test bench. That's really a separate question. Dan
  4. @lukum, I'm going to agree with @zygot here, "This is a 5 year old thread." It would make more sense to start new questions in a new thread. The statement you are asking about above follows directly from the DDR3 specification from JEDEC. Feel free to look it up if you have more questions. Dan
  5. The voltage for a given bank will always be constant, and controlled by the power provided for that bank. This is usually hardwired on most circuit boards to 3.3 Volts. Adjusting the IO standard by itself is not sufficient. Dan
  6. @chaitusvk, If you look through my rules for beginners, one of them is that you should *only* transition on the positive edge of your clock--nothing else. Most people don't quite think through the subtle clock implications of transitioning on other than a clock. If your non-clock transition happens too close to a clock edge, you could easily end up with a physical instability. The other half of that problem is that most tools, Vivado among them, can't handle the subtle timing requirements either. Try rebuilding that block so that it's on the @(posedge clk) and nothing more. See w
  7. @chaitusvk, I'm not sure quite what problem you are struggling with, but I do know one thing: this is not how you go about solving a problem in hardware. Sometimes I can recognize a pattern in software and know exactly where to go for a bug, but that's been rarely the case in hardware. You have a couple of basic solutions available to you here to help you dig: My first step when debugging Verilog logic is to enable default_nettype of none, and to then run Verilator -Wall on the design. This won't necessarily catch any latches. I would then formally verify any modules of you
  8. @chaitusvk, From what you've given, I'm not sure what you are describing in total. I do know this, however: if you don't define all your inputs and outputs in the XDC file, then the synthesis tool won't do what you want. Hardware synthesis tools will aggressively optimize your design. If your design creates an output that doesn't get sent to a pin, then any logic leading up to that output may be validly removed. This is usually considered a good thing, although it has been known to surprise beginners. Dan
  9. @zygot, The Cmod S6 supports the DEPP interface. I have two separate HDL interfaces that work with this interface. This may be the simplest, but I have this one as well. To my knowledge (and memory--it's been a couple years), these boards don't export a serial interface to the host at all like most of the FTDI USB/UART devices, but rather this DEPP interface which is quite different. Dan
  10. @Brian Heilig, Would an example help at all? Here's the software I used to communicate with my S6. Yes, I call DmgrOpen followed by DeppEnable. I think the biggest difference I see off the top of my head was that I used either "" for a serial number, or a much longer string returned by djtgcfg. Dan
  11. @Helmsley, I though picoBlaze was a proprietary CPU core? If so, you won't find the Verilog code for it. You might want to check out copyblaze and/or pacoblaze. They're supposed to be clones of the PicoBlaze processor. I have no idea how well, or even if, they work, but that's just what they advertise. Beware ... this is one of the faults of the Xilinx ecosystem. Many like it. However, it contains many parts/pieces/components for which the source logic is encrypted. You will struggle to take designs from the Xilinx ecosystem and use them in any other. You should be fine w
  12. @RodRico, No, I don't have any STL files posted. You can certainly use OpenSCAD to generate one, however. That was the tool I used. It's FOSS, if that helps you at all. You can find the SCAD files in the same directory as the PNG. Dan
  13. @RodRico, I 3D printed a top m'self, not the base, but perhaps you might find this a useful place to start from. You'll find some scad files there as well, should you wish to use a tool like openscad. Dan
  14. @zygot, Yes, I have read your message. I'm not sure I'm ready to respond to it, and so I have not. Let's just say I'm still mulling it over. Go for it. Perhaps the discussion that follows (if any) will help me form an opinion one way or another. Dan
  15. @asmi I'm finding about one complaint in Xilinx's forums roughly every week to two weeks. The complaint is typically from a user whose design is locking for what appear to be completely inexplicable reasons. Digging further typically reveals that they are using one of Xilinx's demo designs--either the AXI-lite or the AXI (full) one. Whether or not you run into one of these problems really depends on how you configure the interconnect. If you configure it for "area optimization", you won't be likely to see the bug. Another key criteria has to do with how the bus is driven. One
  16. @zygot, Lol. You won't find me putting money down for such a bet either. @zygot, At the risk of taking this thread far off topic, let me ask, What sort of demo would you like to see? I have an AXI performance measurement tool that needs to be tested out somewhere. It's a solution looking for a problem at this point--much like the demo you would like to see. So, again, what sort of demo would you like to see? What particular items are you interested in seeing? Things that would be relevantly useful in demonstrating? I make no promises to implementing such a demo
  17. @RodRico, AXI-lite isn't all that bad. But the full AXI? Yeah, that gets painful. Perhaps the most painful part is dealing with backpressure. This is something Xilinx's demos don't handle properly. Backpressure is what happens when BVALID && !BREADY or equivalently when RVALID && !RREADY. In either case, your design should (ultimately) lower AWREADY, WREADY, and/or ARREADY (depending on which channel has the backpressure). Stopping up the processing along the way, especially if you have a pipelined design, can be a challenge. Here are some other challenges: A
  18. @MarkSe, Just a quick question on your test bench: Should the release from reset be synchronous with a positive edge of the clock? I've seen a lot of weird behavior associated with non-blocking assignments, enough that I try to use blocking assignments for all signals that are supposed to be clock synchronous. Dan
  19. @RodRico, Welcome back! You've also missed the AXI revolution (or hostile takeover--your pick). Beware when you dive into it today that Xilinx's examples are buggy. Dan
  20. @lowena, The "official" answer to how to move data from the PL to the PS is that you should build an AXI bus master in your PL design that can write directly to PS memory. A program running in PS can then check that memory for data written to it, and act accordingly. You'll need to beware of the data cache (turn it off--lest you read out of date information from within software), and the MMU (lest you write to the wrong memory address). Once you've dealt with those, writing an AXI master becomes quite doable. Xilinx will also try to push you towards using a DMA to move data from P
  21. @Rakesh Singanahalli, I might be able to help you there. I've build projects using the PicoRV32 before, and I needed to solve this problem. Here's one such project, although it's for the ECP5 Versa board and not a Xilinx board. In this case, the differences should be minimal. My general approach was to start with a means of interacting with the bus within a design from external to the design. I have a serial port to bus converter I use for that purpose--something I call a "debugging bus". Using the debugging bus, together with my own flash controller, I can write any design into
  22. @Alper_Demir, Perhaps the first question should be, what trace are you expecting when interacting with the device, and what does a captured trace actually look like? A second question might be, have you simulated your design and does it work properly in simulation? Dan
  23. It might help to know what the "GPIO program on my website" was. Dan
  24. @supriyak, PMods only have 4 data bits per rank, or at most 8 data bits per PMod. It'd be kind of hard to hit the requirement you are asking for. A 16-bit bidirectional data bus with 8 address bits would require a minimum of three PMod's ganged together--and that's even before you get to the control bits. I don't know of anyone offering such a solution. That said, 1bit squared has built a HyperRAM PMod that gets some good performance, so it might work for your application. HyperRAM uses an 8-bit bidirectional DDR data bus, for address and data, together with a number of side chan
  25. @hep77,s Microblaze is not required for serial communication. I have many projects that I have built which use the serial port without using a Microblaze. Indeed, you'll be able to use much more of your FPGA if you don't need to support the weight of the Microblaze. That said, without the Microblaze processor, you won't have access to the C library. You'll have to do your work instead in RTL. Personally, I don't think that's a problem--I think it's a benefit of the approach. Dan