bklopp

Members
  • Content Count

    22
  • Joined

  • Last visited

  1. Sorry I tried to do a lightning fast edit to mention that I'm looking for examples for either the Nexys4 DDR or the Nexys video. Trying to upgrade a cmod project to one of those boards is kinda a messy. I suppose I can just try to recreate it if you guys don't have any examples for those boards.
  2. I was wondering if you guys had any sweet examples using microblaze interrupts and interrupt handlers. I've been having some bad luck with my own project. Instead of getting into the details of my broken project here, I figure I'd just ask for a working example to see where I'm going astray. Thanks in advance! Edit: I'm specifically looking for exmples for either the Nexys video or Nexys 4 DDR.
  3. It was in the working Vivado 2017.4 OLED QSPI project for the nexys video that you gave me a few posts up. I compiled the project and it happens to program the c code from flash much faster than if spansion was selected.
  4. I'm wondering, why do you have micron selected instead of spansion, since it's a spansion chip on the board?
  5. I would try 9600 Baud and use teraterm instead. https://download.cnet.com/Tera-Term/3000-2094_4-75766675.html
  6. I finally got it working by following instructions from a forum post on xilinx forums: https://forums.xilinx.com/xlnx/board/message?board.id=EMBEDDED&message.id=43256#M43256 I'll look at your projects and figure out where I'm going wrong, since the fix recommended by the dude from xilinx only uses single spi mode (X1), so I imagine it loads quite a bit slower than it could. Because of that, I hesitate to mark this post as the solution. 1) Yes 2) Yes 3) Here are my cache settings. I'm a bit curious why the cache matters. Does the "hello world" application get loaded into it at some point of the programming process?
  7. I regenerated the bit stream with the QSPI flash IP connected to 50MHz and set to Quad. Same result, nothing has been printed to the terminal. I notice that when I press the program button on the nexys video board, the done light (LD15) comes on after about 10 seconds . EDIT: Actually I do get the "SREC SPI Bootloader" output to the terminal, so that C code must be programmed to the spi because it is executing. I'm guessing the bootloader is supposed to boot the helloworld, but that just isn't happening for whatever reason. EDIT 2: I dug into the srec bootloader template code and added prints to see where the code fails. I found out that the spansion chip on the nexys video is not supported, at least by the code that was reccomended by the tutorial. The code halts at line 1920 (line numbers may be different since I added print statments) in xilsf.c.
  8. I have been programming the Nexys video through the USB J12 port, I do have a JTAG HS2 on hand that I can use to program the board with. Do I need to use the JTAG HS2 for this to work? 1) Here is the block design, I am using the 100Mhz clock... that might be a problem: 2) I am able to run the hello world program by run as->launch on Hardware(system debugger) 3) I'm assuming your asking about the linker script: I'm rebuilding the project with the 50Mhz clock to try that out. Thanks.
  9. I have been following this tutorial and have had no luck. I am uncertain about how to configure the QSPI IP, because the tutorial starts assuming that I have done that part successfully, so I am not even sure if this is the root of my problem. I have tried these two configurations of this IP, compiled them, and exported them to the SDK, and none of them solved the problem: I made sure JP4 is in the QSPI position. On step 3.1 in the tutorial, I can see that the FPGA is programmed successfully and I see the following output (since I chose not comment out the VERBOSE define as suggested in the tutorial): While programming the flash on step 4 I notice that my FPGA code is erased from the board (leds I had assigned to outputs turn off). Is that supposed to happen? At the end of the tutorial I get no "hello world" output on the terminal after resetting the board, though the FPGA does seem to program from the flash successfully, so that portion works, but I can't get the C-code to run from the flash. Here is the sdk_console_output.txt so you can see the steps I took in the sdk to program the board.
  10. Awesome, thanks guys that worked for me. I also had to make sure the component definition name matched the "of_component=" name in the interface definition. For anyone with the same problem, here is the working interface definition in the board.xml file: <interface mode="slave" name="sysclk" type="xilinx.com:interface:diff_clock_rtl:1.0" of_component="sysclk"> <parameters> <parameter name="frequency" value="300000000"/> </parameters> <preferred_ips> <preferred_ip vendor="xilinx.com" library="ip" name="clk_wiz" order="0"/> </preferred_ips> <port_maps> <port_map logical_port="CLK_P" physical_port="sysclk_p" dir="in"> <pin_maps> <pin_map port_index="0" component_pin="sysclk_p"/> </pin_maps> </port_map> <port_map logical_port="CLK_N" physical_port="sysclk_n" dir="in"> <pin_maps> <pin_map port_index="0" component_pin="sysclk_n"/> </pin_maps> </port_map> </port_maps> </interface> And the working component definition in the board.xml file: <component name="sysclk" display_name="System Clock" type="chip" sub_type="system_clock" major_group="Clock"> <description>100 MHz Differential System Clock</description> </component> And finally the pins in the pins file <pins> <pin index="00" name ="sysclk_p" iostandard="LVCMOS25" loc="AG29" /> <pin index="01" name ="sysclk_n" iostandard="LVCMOS25" loc="AG30" /> ...
  11. Since you folks an Digilent make these wonderful board files that make it super easy to connect components, I figured I'd make my own for a custom board. The problem is that my design uses a differential sysclock, whereas most Digilent designs use a single-ended sysclock. I have been pouring over the board file chapter in UG895 to figure out how to do this, but unfortunately I haven't found any examples or hints in doing so. A single-ended clock interface in the board.xml file looks like this: <interface mode="slave" name="sys_clock" type="xilinx.com:signal:clock_rtl:1.0" of_component="sys_clock" preset_proc="sys_diff_clock_preset"> <description>3.3V Single-Ended 100MHz oscillator used as system clock on the board</description> <port_maps> <port_map logical_port="clk" physical_port="clk" dir="in"> <pin_maps> <pin_map port_index="0" component_pin="clk"/> </pin_maps> </port_map> </port_maps> <parameters> <parameter name="frequency" value="100000000" /> </parameters> </interface> Which allows one to click and drag "System Clock" from the board tab into the block design and gives you a clocking wizard with a single-ended clock. I want to be able to do the exact same thing, except instead of spawning a clocking wizard with a single-ended clock, it spawns a clocking wizard with a differential clock, like this: Here is my failed attempt at creating this interface: I used "xilinx.com:signal:diff_clock_rtl:1.0" instead of "xilinx.com:signal:clock_rtl:1.0" and added another port map for the p/n signals. <interface mode="slave" name="sys_clock" type="xilinx.com:signal:diff_clock_rtl:1.0" of_component="sys_clock" preset_proc="sys_diff_clock_preset"> <description>3.3V Double-Ended 100MHz oscillator used as system clock on the board that don't work none good</description> <port_maps> <port_map logical_port="CLK_P" physical_port="clk_p" dir="in"> <pin_maps> <pin_map port_index="0" component_pin="clk_p"/> </pin_maps> </port_map> <port_map logical_port="CLK_N" physical_port="clk_n" dir="in"> <pin_maps> <pin_map port_index="0" component_pin="clk_n"/> </pin_maps> </port_map> </port_maps> <parameters> <parameter name="frequency" value="100000000" /> </parameters> </interface> and I added the following pins to my pin file: <?xml version="1.0" encoding="UTF-8" standalone="no"?> <part_info part_name="xc7a200tffg1156-2"> <pins> <pin index="00" name ="clk_p" iostandard="LVCMOS25" loc="AG29" /> <pin index="01" name ="clk_n" iostandard="LVCMOS25" loc="AG30" /> Which gives me this message: "'System Clock' board component cannot be connected because no possible options to connect." when I try to click and drag system clock into the design: Do I need to edit the preset file, or is the syntax for my interface definition incorrect, or am I missing something else entirely? Any help is greatly appreciated. Thanks in advance
  12. I assumed the constraints were generated from the pin file, which is referenced by the board file.
  13. I followed your suggestion and just downloaded Vivado 2016.4. I tested it and it works on that version.
  14. It looks like the interrupt is never being triggered by the DMA. I put a breakpoint inside of the interrupt handler and it never hits it.
  15. I created a new empty application project, imported the folders and files from the DMAaudio folder into my project. I could use some clarification on what you mean by "manually importing all the settings from the old one" What settings are you referring to? The settings under the Board Support Package settings? If so, which ones need changed to what? system.mss system.mss