• Content Count

  • Joined

  • Last visited

About aeon20

  • Rank
    Frequent Visitor

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Hello. I'm trying to follow to build my own bitstream for the RISC-V. There is a section just for that: However, I can't find this folder. What am I supposed to git clone to get this directory structure? I see that is referenced, so I've tried to clone that, and also lowrisc-nexys4, lowrisc-quickstart, and others. I can't find it. Am I using an outdated tutorial? Maybe someone that got this working or simply has enough experience in general to see my mistake, could give me some pointers?
  2. Much appreciated, thank you. Sorry for overlooking this. I thought it would throw an error if there was something wrong with the file system, such as the typical "kernel panic - not syncing", or similar to what I'd see on a normal Linux system if it can't access the root disk at all.
  3. So in order to actually boot, it requires an SD card? Forgive my naive questions, but what does it use the SD card for? I might have guessed it is the only form of non-volatile storage it has, however, if it needed this to boot, shouldn't Linux throw an error? I'm assuming the kernel and initial ramdisk are all programmed to the QSPI, so I don't really see why it needs the SD card in order to boot in that sense. Once I get an SD card to try with, do I need to do anything to it? Create a file system?
  4. I have RISC-V running (sort of) on a Nexys A7, I was able to get it booting by doing as kwilber suggested in the following thread make getrelease, and then make program-cfgmem, as explained in the guide that you linked to in the thread. This makes the process pretty simplified, as it uses a precompiled Linux kernel and initial ramdisk as well as a precompiled FPGA bitstream which implements the RISC-V. I turn it on, and I do get a display. However, I'm prompted with the following on the VGA output immediately after some self test output: "Hello LowRISC! Tue Aug 14 10:40:47 2018: Turn on SW0 for gdb loading, SW1 for SD-card loading, or SW2 for Ethernet loading." I'm running this installed from the QSPI memory on the Nexys A7. I've tried all the switches, but they don't seem to do anything, not after it has loaded, nor after a reset/power cycle of the device. Since the tutorial appears to have been made for the Nexys A4, I'm wondering if this is the reason switches that aren't present on the A7 are referred to in this manner. How can I get past this? I understand that ideally I should modify the source of the bitstream and recompile it, taking into account the physical differences on the board layout between the Nexys 4 and A7. However, this negates the whole point in using this quick start tutorial for me. I was wondering, is there a simple way to work around this, that I'm not aware of?
  5. I'd like to run RISC-V with very basic (command line only, obviously) Linux on a Nexys A7 just to play around with it. Since I'm a beginner I find it hard to adapt steps for other boards. If anyone could suggest a tutorial that either matches Nexys A7 exactly, or would be as easy as possible for me to adapt, that would be great.
  6. Again just following this guide: I had it working, but then, when I just generate the bitstream again, without making any changes, export the hardware and launch the SDK, again without having made any changes, just repeating the steps, I'm able to program the device. All of this with no errors. However, I get this when I try to "Launch on hardware". As I said, I had this working before, didn't make any changes, just repeated the steps. Is this a normal problem? Did I miss something? I don't know how to debug this. I did find this: but refreshing doesn't help.
  7. Please consider the following block diagram (from here but with a utility vector logic block added): I want push_buttons_5bits to remain connected to GPIO2, so I can read from them directly, like before. However, I also want two bits, e.g. bit 0 and bit 1 from push_buttons_5bits to be connected to Op1 and Op2. This has no purpose whatsoever, I'm just learning and would like to be able to read in my C code the result of the and gate.
  8. Wow. It works on /dev/ttyUSB1 !! Thanks a lot for all your support!
  9. Thanks for the help Jon. I am root when I try to do this, so adding myself to the dialout group shouldn't matter. However, just to be sure, I just tried this, and it doesn't change anything, my regular user has the same problem as root, despite being in the dialout group. I also remembered to fully log out and back in, and check that I am indeed in the dialout group. djtgcfg output: # djtgcfg enum Found 1 device(s) Device: NexysA7 Product Name: Digilent Nexys A7 -100T User Name: NexysA7 Serial Number: 210292AA7671
  10. Thanks. (Edit: Sorry, I made a mistake that I corrected, I wrote at first that now it doesn't look like it runs code at all, but this is working now). I've followed the new version of the tutorial. I started a new project from scratch. However, I don't get anything over serial. tried with Putty (running as root), using /dev/ttyS0 and 9600 baud, 8 data bits, no parity bits, 1 stop bit (also tried 115200 baud), confirmed by dmesg: # dmesg |grep tty [ 0.000000] console [tty0] enabled [ 0.479388] 00:01: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A [ 10.253071] cdc_acm 1-1:1.1: ttyACM0: USB ACM device [ 10.272354] usb 1-2: FTDI USB Serial Device converter now attached to ttyUSB0 [ 10.272542] usb 1-2: FTDI USB Serial Device converter now attached to ttyUSB1 [ 1626.079324] cdc_acm 1-1:1.1: ttyACM0: USB ACM device [ 1986.688788] ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0 [ 3263.978305] cdc_acm 1-1:1.1: ttyACM0: USB ACM device [ 4315.373016] cdc_acm 1-1:1.1: ttyACM0: USB ACM device Tried to program the device again, tried to hit CPU reset, tried some more. Nothing. The device does get programmed, as I can see it stops with the display demo it comes shipped with. I can also see it running code as the LEDs light up. There are also no errors or warnings when I program it. The block diagram now: The SDK program:
  11. This is my block diagram. I've used the following design This should be a good and well-known design that should work?
  12. My only problem right now is probably the UART/serial data issue. I can see that the code runs on the FPGA board -- all the LEDs light up when I press a button, just as the code intends. Hence, my only problem now is actually being able to see the data.
  13. Thanks for the help. I can't get this to work. I have: # dmesg |grep tty [ 0.000000] console [tty0] enabled [ 0.471821] 00:01: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A [ 24.745885] cdc_acm 1-1:1.1: ttyACM0: USB ACM device [ 24.828365] usb 1-2: FTDI USB Serial Device converter now attached to ttyUSB0 [ 24.828539] usb 1-2: FTDI USB Serial Device converter now attached to ttyUSB1 [ 1077.049689] cdc_acm 1-1:1.1: ttyACM0: USB ACM device [ 2845.837523] ftdi_sio ttyUSB0: FTDI USB Serial Device converter now disconnected from ttyUSB0 I have programmed the FPGA. Then I do step 8.3 in the tutorial 8.3 Right click on the application project in the Project Explorer, then select Run As → Launch on Hardware (System Debugger). I try using minicom, as you can see I'm using port /dev/ttyS0. Welcome to minicom 2.7 OPTIONS: I18n Compiled on Apr 22 2017, 09:14:19. Port /dev/ttyS0, 12:53:04 Press CTRL-A Z for help on special keys I expect to see "button state: 000000" something. But instead I see nothing. I've tried to relaunch, restart minicom, I've tried to reprogram the FPGA. I have also tried with Putty.
  14. In the following guide: At the bottom, it states: "The appropriate port to connect to can be determined by reviewing the Device Manager in Windows." I'm using Linux, how can I determine the port to connect to so I can view UART messages? What should I use to connect to it?
  15. Hi jpeyron, and thanks. That is exactly the tutorial I'm following. At step 23 I encountered this problem. I have attached a block diagram here: So I should use instead? I'm using Vivado v2018.3 (64-bit).