Hi,
we build up the reference designs for two fpga systems: First redpitaya and a second combination of zynq zc702, ad9739a and ad9467. We also implemented the communication with matlab via libiio for zc702. The communication project(modulation, demodulation) therefor is realized by Simulink.
Now we want to transfer the model to redpitaya and want to program the whole project with vhdl/verilog. So it should completly run on hardware in real-time. It seems that this can be done by a manipulation of the blockdesign.
So we would like to see a similar project, with creation of a new IP block. You shared some projects for redpitaya with instructions on how to build the .bit bitstream. Is it possible to get an example-project (project file) to gain insight how and where to implement own IP-cores. We need especially the look inside your vivado project, to understand the realtions and to realize our own project.
Any help would be appreciated!
Regards
Implementing a real-time apllication in Vivado
-
- Posts: 14
- Joined: Fri Nov 13, 2015 3:10 pm
-
- Posts: 799
- Joined: Sat May 23, 2015 5:22 pm
Re: Implementing a real-time apllication in Vivado
Hi,
I'm using IP cores for my Red Pitaya projects.
The source code of my IP cores can be found at https://github.com/pavel-demin/red-pita ... ster/cores
The Tcl script used to build the cores can be found at https://github.com/pavel-demin/red-pita ... s/core.tcl
The make rule running the Tcl script can be found at https://github.com/pavel-demin/red-pita ... efile#L124
All my Red Pitaya projects can be found at https://github.com/pavel-demin/red-pita ... r/projects
Some basic explanations of my projects can be found at http://pavel-demin.github.io/red-pitaya ... ed-blinker
Best regards,
Pavel
I'm using IP cores for my Red Pitaya projects.
The source code of my IP cores can be found at https://github.com/pavel-demin/red-pita ... ster/cores
The Tcl script used to build the cores can be found at https://github.com/pavel-demin/red-pita ... s/core.tcl
The make rule running the Tcl script can be found at https://github.com/pavel-demin/red-pita ... efile#L124
All my Red Pitaya projects can be found at https://github.com/pavel-demin/red-pita ... r/projects
Some basic explanations of my projects can be found at http://pavel-demin.github.io/red-pitaya ... ed-blinker
Best regards,
Pavel
-
- Posts: 1441
- Joined: Sat Jun 07, 2014 12:49 pm
- Location: Königswinter
Re: Implementing a real-time apllication in Vivado
In case you want to take a look at the original Red Pitaya block design, you can find instructions
Both versions have a single block design "system.bd" combined with some Verilog / SystemVerilog code.
-
- Posts: 14
- Joined: Fri Nov 13, 2015 3:10 pm
Re: Implementing a real-time apllication in Vivado
Hi,
i deal again with this project and checked your links. So i build up the master branch for every four projects (classic, logic, logic_orig, tft). Now i would like to find the user I/O interface to generate an output signal via HDL code by Matlab HDL Coder. So i tried to model an tranceiver and receiver in Simulink and generated the HDL code. But i don't see the connection in red_pitaya_top.sv to connect to DAC ADC ports. Can you help? Can you explain how to insert data to ASG or directly to DAC? I think there must be a 14bit register, which has to be connected to.
Regards!
i deal again with this project and checked your links. So i build up the master branch for every four projects (classic, logic, logic_orig, tft). Now i would like to find the user I/O interface to generate an output signal via HDL code by Matlab HDL Coder. So i tried to model an tranceiver and receiver in Simulink and generated the HDL code. But i don't see the connection in red_pitaya_top.sv to connect to DAC ADC ports. Can you help? Can you explain how to insert data to ASG or directly to DAC? I think there must be a 14bit register, which has to be connected to.
Regards!
-
- Posts: 1441
- Joined: Sat Jun 07, 2014 12:49 pm
- Location: Königswinter
Re: Implementing a real-time apllication in Vivado
In the "classic" project's red_pitaya_top.sv, the "adc_dat" bus carries the incoming samples. The busses "asg_dat" and "pid_dat" are added together and are then converted to produce the DAC sample stream.
You can just connect the adc_dat bus to your module to receive incoming samples. To connect your output to the DAC, I'd recommend to define a new bus like
and include it in the summation like:
You can just connect the adc_dat bus to your module to receive incoming samples. To connect your output to the DAC, I'd recommend to define a new bus like
Code: Select all
// custom module
SBG_T [2-1:0] custom_dat;
Code: Select all
// Sumation of ASG and PID and custom signal perform saturation before sending to DAC
assign dac_a_sum = asg_dat[0] + pid_dat[0] + custom_dat[0];
assign dac_b_sum = asg_dat[1] + pid_dat[1] + custom_dat[1];
-
- Posts: 14
- Joined: Fri Nov 13, 2015 3:10 pm
Re: Implementing a real-time apllication in Vivado
Hi,
thanks for that fast response! I insert the new custom_dat bus and the lines for sumation. The matlab code and the hierarchy of inserted code you can see in the appendix. As you can see i connected the matlab-output and the custom_dat bus as the following:
Alternative I initiated in red_pitaya_top:
But in both cases there is no signal at the output. So what else is missing?
thanks for that fast response! I insert the new custom_dat bus and the lines for sumation. The matlab code and the hierarchy of inserted code you can see in the appendix. As you can see i connected the matlab-output and the custom_dat bus as the following:
Code: Select all
assign custom_dat[0] = Out1_0;
Code: Select all
Sin My_Sinus (
.clk(sys_clk),
.reset(reset),
.clk_enable(1'b1),
.ce_out(ce_out),
.Out1(custom_dat[1])
);
You do not have the required permissions to view the files attached to this post.
-
- Posts: 1441
- Joined: Sat Jun 07, 2014 12:49 pm
- Location: Königswinter
Re: Implementing a real-time apllication in Vivado
Your ways of instantiating the module did not work. In the "Project Manager Hierarchy", you can see that Sin is not a subnode of red_pitaya_top. This means it will not be included in the generated logic.
In your Sin.txt you put the assignment to the custom_dat bus inside the module, where the bus is not known.
You probably had a number of error messages during synthesis for both of your approaches. You should pay attention to those.
To use a new submodule, you need to do two things:
1. add the source to the project setup, so that it shows up in the project manager
2. instantiate the module somewhere in the hierarchy so that it is downstream of "top"
Your instantiation in red_pitaya_top is correct, I assume the error of trying to use the custom_dat bus inside the module led to the failure.
edit:
Judging by your other thread, you already found that out yourself ...![Mr. Green :mrgreen:](./images/smilies/icon_mrgreen.gif)
In your Sin.txt you put the assignment to the custom_dat bus inside the module, where the bus is not known.
You probably had a number of error messages during synthesis for both of your approaches. You should pay attention to those.
To use a new submodule, you need to do two things:
1. add the source to the project setup, so that it shows up in the project manager
2. instantiate the module somewhere in the hierarchy so that it is downstream of "top"
Your instantiation in red_pitaya_top is correct, I assume the error of trying to use the custom_dat bus inside the module led to the failure.
edit:
Judging by your other thread, you already found that out yourself ...
![Mr. Green :mrgreen:](./images/smilies/icon_mrgreen.gif)
jadalnie klasyczne ekskluzywne meble wypoczynkowe do salonu ekskluzywne meble tapicerowane ekskluzywne meble do sypialni ekskluzywne meble włoskie
Who is online
Users browsing this forum: No registered users and 31 guests