• Content Count

  • Joined

  • Last visited

About NotMyCupOfTea

  • Rank

Recent Profile Visitors

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

  1. Dear all, I'm using Vivado 2018.3 and a Zybo Z7010 board. I have finally finished my project (I actually owe this forum much), and I am now trying to use the board without having to open nor Vivado neither the SDK. Basically, I know that I can program the QSPI flash memory of the board so that the program can run without having to upload it. How this works is still unclear, is switching from JTAG to QSPI enough or should I do something on Vivado? However, I am also using the Zynq processor which runs an application that I start from the SDK. Can I avoid opening the SDK? The better thing would be if I could programm the FPGA through Matlab but I don't know if this is possible. Could you point me to some tutorials or the matlab functions (if they exist...). Thank you very much, NotMyCupOfTea
  2. Dear @jpeyron, Your help has been once again decisive to the success of the project I'm working on. Thank you ! For those who are interested, please find here the files for the blinky project I was able to build. From this point, it is only a matter of minutes to adapt it to your own customized project. Best regards to all, NotMyCupOfTea
  3. Dear @jpeyron, Thank you very much for your answer! I am now one step closer to achieving what I'm up to. I have managed to create my custom IP block which has one parameter (which led to switch on) and one output (the 4-bit signal connected to the leds). Now, I have set the parameter to 2 while building the project and the correct led is turned on. Is there a way to modify this parameter from an SDK application? Thank you, NotMyCupOfTea,
  4. Dear @jpeyron, Thank you for your answer. I already had the Digilent Board files installed but it looks like they are used correctly only if you select the board (and not the part) in the "Creat a Project" wizard... When I did that, everything worked as I wanted, the Hello World project as well. Concerning the "Blinky" project, I don't quite understand... is it enough to have the blinky.v file in the same project directory? I couldn't manage to package it as an IP... By the way, I have been following this tutorial until exercise 5 (where I am stuck because I don't know how bitmasks work...). I will try to do exercise 6 to read and write from memory from PS but I will have to do the same on PL. Thank you for your patience, NotMyCupOfTea
  5. Dear All, I have been working today and unfortunately did not manage to work out your instructions @jpeyron. Here are a few thoughts: - When I want to use the "Hello World" template, it says that I have no UART in my design and that I can't use it. I therefore went back to the design ==> customize IP and add UART1 port in the "MIO Configuration". This seems to solve the matter... - When I manage it through to point 6, running the application give me the following error : AP transaction error DAP status f0000021. My guess lies in a comment line of the Hello World that specifies that ps7 (==> Zynq PS) is not initialized by this particular example... Nevertheless, I have been looking around for another project meanwhile and I can successfully run the "Echo example project" you presented in this thread. There is just one little problem which is that when pressing the "ESC" key, it should print "Successfully..." and it prints "uccesfully...". I have checked the baud rate... Now, I will try to reproduce the architecture to apply it to a simple project (see attached files). I want to turn on one of the four leds of the board according to the parameter called "LED", giving the user the possibility to change this parameter from the serial terminal. I have tried turning the parameter into a reg input and packaging the project into an IP and replacing the GPIO module with it but when I package it only the "clk" appears as input of the module. I have looked around but am currently I little lost on how to proceed... Thank you for your patience and any tips you can give me, NotMyCupOfTea,
  6. Dear All, Thank you for your clear answers. @vicentiu : I think I understood the difference between bare metal and linux enbedded in the PS and as I don't need to do very complex operations in the PS I think bare metal will be enough for this time. (Though, I might change my mind in the future...) @jpeyron : Thank you so much for your detailed guidelines! I will follow those steps during the week-end but I won't be able to test it before Monday as I don't have the board with me. Starting with this simple project seems a good idea, now I have a question about step 4 for the project I described above. If I am not mistaken, the axi-m-gp0-aclk is the port used to connect PS and PL, how will I have to connect it in the future? Thank you very much and have a nice week-end, NotMyCupOfTea
  7. Hi @vicentiu, I don't really know the difference between "Linux" and "Bare metal" and am sorry if I have posted the question in the wrond repository... As I don't know the difference, I can't tell yet which of these options I'd prefer... Feel free however to move the discussion where it is most appropriate (or if I have to do it please let me know). Thank you,
  8. Dear All, I have currently finished a PL program for signal processing and hardware controlling on the Zybo Z7010 board. Now, I want to ensure that some parameters can be easily modified by the user on a computer. Thus, I would like to use the USB -- micro-USB cable to instaure a communication between the user and the board. After some reading, I understand that I have to use the PS if I want to go through the micro-USB UART port (I have not yet used the PS in my project...). Hence, I need two things: - Instantiating the UART interface and writing the C/C++ script to ensure communication between User and PS - Creating a write/read connection between PS and PL to modify the parameters after reception by the PS. How should I proceed? As usual, feel free to ask for any further information. P.S. : Until now, I have used only Verilog and VHDL code to make the whole project run and am very uncomfortable with the "Block design" tool, so please be as specific as possible if block design is required (or faster/simpler...) Thank you very much,
  9. Hi @jpeyron, Thank you for your answer. If I understand the thread you pointed out well, I need to build an external low-pass filter. Is it absolutely necessary ? Isn't there a way to use built-in components to do so ? If not, I will try implementing the filter. Bye,
  10. Dear Jon, Thank you for your answer. I have tried to instantiate de VHDL code from @hamster in my program as follows, after having added a VHDL source from the "add source" menu: pmod_da3 myDAC ( .clk(clk), .CSn(jc[0]), .LDACn(jc[2]), .SCLK(jc[3]), .SDAT(jc[1]), .level(dout) ); Where jc[0] is the correct CS pin, jc[1] data pin, jc[2] LDAC pin and jc[3] clock pin. This seems to work quite well, until I input a signal of 10kHZ. I have the same clock parameters as in @hamster XDC file. I think the problem could come from the ADC but I'm not sure how to fix it. Usually, as the XADC has a 1MSB it should be able to cope with signals until 500kHz if I am not mistaken. Thank you for your help, test.vhdl xadc_digilent_forum_2.v XADC_to_DAC.xdc.xdc
  11. Hi everyone, After having succesfully managed to use de XADC of the Zybo Z7010 board as explained in this post, I am now trying to use a DAC Pmod (reference and documentation here). After having checked the documentation, I have tried to write the SPI connection to the DAC (please find the verilog file and simulation in the attached files). Note, that I have decided to set the l_dac signal to 0 to enable continuous output to an oscilloscope. The simulation seems to run well to me and to be in accordance with the documentation, however, the result is not satisfactory. Indeed, the signal I want to output is on 16-bits and the command "output = 16'b1111111111111111", which should give the max value does not reach it. Besides, when I ask to "output = 16'b1000000000000000", which should give half of the max signal, the output is almost zero. Finally, please find in the attached files the image I get on an oscilloscope when I input a sine signal with 0.5V offset and 1Vpp. Does aybody see what I am missing ? Don't hesitate to ask more details if needed. Thank you in advance, DAC_wiz_0.v DAC_wiz_0.sim
  12. Hi jpeyron, Thank you very much for having helped me, it works fine now ! Problem solved !
  13. Hi jpeyron, Thank you for your answer ! I have uploaded the TOP verilog and the XDC file on Vivado and synthetized it. At this point it told that xadc_wiz_0 was not found. How should I include the xadc wizard ? I have tried to click on "add source" but I couldn't find the file. The button "Open block design" is unaccessible and I am not sure that creating a block design is necessary. For the time being, I have uploaded the directory named xadc_wizard_0 from the project that can be found here : but it is probably not the best way to do it. Could you please tell me which way is the best to add the wizard from scratch ? However, with this I was able to programm the board and it runs, though I don't really understand which led should blink according to which port has an input (but this can come from the fact that the wizard has been falsely loaded). Sometimes only one led turns on, sometimes 2/3/4... Sometime they are in phase opposition... I'm digging the code to understand what happens. Thank you very much,
  14. Hi, Problem : I am new to FPGA and I would need to understand how to read an Analog input through the XADC to analyze it on the board and then be able to accordingly output a trigger for other machines. One simple thing that I would try to do for the time being is to read in the analog signal and wire it to a led so that I could effectively see the code is working. How do I do that ? Finally, one extra constraint is that I have to limit as much as possible the use of the Zynq processor (I'm not really sure this is achievable, please excuse my lack of knowledge). Product : I use the Zybo Z7 board XC7Z010-1CLG400C and Vivado Design Suite 18.3 What I have tried : I think the tutorial I've seen that best suits be needs is this one : Everything is alright until it comes to copy the instantiation template into the wrapper. I'm not really sure of how this works. After that, it is said there that the Digital input I'm interested in is named "daddr_in" ==> how should I extract it then to - let's say - connect it to a led ? Please find the Constraint file and project in the attached files and let me know if you need more. I have also made other attempts through this : Hence a question on the fly : when I open the SDK and enter a code in C, then I'm starting to ork on the PS isn't it ? Finally, I have also tried the XADC demo project on the digilent website but couldn't sort out how to adapt it to my needs. Thank you in advance for your healp, ! Zybo-Z7-Master.xdc design_1_wrapper.v xadc_wiz_0.v