<?xml-stylesheet type="text/xsl" href="https://community.element14.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Learning AMD Zynq: a project to generate a set of PWM signals. 2 - add overall control block, delay and pulse signal</title><link>/technologies/fpga-group/b/blog/posts/learning-xilinx-zynq-a-school-project-to-generate-a-set-of-pwm-signals-2---add-overall-control-block-delay-and-pulse-signal</link><description>Continuation of Learning AMD Zynq: a school project to generate a set of PWM signals. 1 - problem statement and possible approach .
 yepe has a goal to create a set of signals for an ultrasone pulse generator.

Status after Post ...</description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>RE: Learning AMD Zynq: a project to generate a set of PWM signals. 2 - add overall control block, delay and pulse signal</title><link>https://community.element14.com/technologies/fpga-group/b/blog/posts/learning-xilinx-zynq-a-school-project-to-generate-a-set-of-pwm-signals-2---add-overall-control-block-delay-and-pulse-signal</link><pubDate>Wed, 21 Jun 2023 06:04:33 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:9ecca638-1e6d-4550-b686-54a2a3ccdb9f</guid><dc:creator>guillengap</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;&amp;nbsp;[mention:acaf6a9338de4eef8f6717d5561ed01d:e9ed411860ed4f2ba0265705b8793d05]&amp;nbsp;&lt;/p&gt;
&lt;p&gt;It&amp;#39;s the first time I see this blog and I feel attracted to the topic because it has many applications.&amp;nbsp;I want to take advantage of your knowledge in PWM signals to request your advice. I am developing a prototype with the MiniZed board to control two motors with PWM signals and using PID control.&lt;/p&gt;
&lt;p&gt;I found a good tutorial by Adam Taylor with a simple DC motor, I repeated the experience and it works:&amp;nbsp;&lt;a id="" href="https://www.hackster.io/adam-taylor/mini-but-mighty-the-minized-and-vitis-for-motor-control-9c376b"&gt;https://www.hackster.io/adam-taylor/mini-but-mighty-the-minized-and-vitis-for-motor-control-9c376b&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To generate two PWM signals, I have to make changes to the hardware (vivado) and software (vitis). My problem is that I don&amp;#39;t know what changes have to be made because I haven&amp;#39;t found the bibliographical references.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Adam Taylor was developing this topic with PWM signals (servos) but he only described the topic and didn&amp;#39;t finish it:&amp;nbsp;&lt;a href="https://support.xilinx.com/s/article/744654?language=en_US"&gt;https://support.xilinx.com/s/article/744654?language=en_US&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Any help or advice from you is welcome!&amp;nbsp;Thank you very much in advance!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Guillermo&lt;/strong&gt;&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=25761&amp;AppID=19&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Learning AMD Zynq: a project to generate a set of PWM signals. 2 - add overall control block, delay and pulse signal</title><link>https://community.element14.com/technologies/fpga-group/b/blog/posts/learning-xilinx-zynq-a-school-project-to-generate-a-set-of-pwm-signals-2---add-overall-control-block-delay-and-pulse-signal</link><pubDate>Sat, 06 May 2023 15:24:52 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:9ecca638-1e6d-4550-b686-54a2a3ccdb9f</guid><dc:creator>yepe</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;The project and notebook is running on my PYNQ Z1. I am measuring on PMODA channel 0, 1, 2 which must be PWM, PWMN and PULSE.&lt;/p&gt;
&lt;p&gt;&lt;img src="/resized-image/__size/1280x720/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-9ecca638-1e6d-4550-b686-54a2a3ccdb9f/scope_5F00_211.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;I was wondering if you know a reference manual for PYNQ to see the pinout in an intuitive way. I can see the constraints file on what output name the signals are output, but I am not sure which pins are Y17 and U18, etc. I tried measuring channel 3, 5, 6, 7 but did not see a signal. On channel 4 there seems to be a signal that starts a little earlier than PULSE and is low during the pulse train. That must be PRF, is it?&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=25761&amp;AppID=19&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Learning AMD Zynq: a project to generate a set of PWM signals. 2 - add overall control block, delay and pulse signal</title><link>https://community.element14.com/technologies/fpga-group/b/blog/posts/learning-xilinx-zynq-a-school-project-to-generate-a-set-of-pwm-signals-2---add-overall-control-block-delay-and-pulse-signal</link><pubDate>Fri, 05 May 2023 18:05:53 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:9ecca638-1e6d-4550-b686-54a2a3ccdb9f</guid><dc:creator>Jan Cumps</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;img alt=" " src="/resized-image/__size/1280x720/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-9ecca638-1e6d-4550-b686-54a2a3ccdb9f/scp.jpg" /&gt;&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=25761&amp;AppID=19&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Learning AMD Zynq: a project to generate a set of PWM signals. 2 - add overall control block, delay and pulse signal</title><link>https://community.element14.com/technologies/fpga-group/b/blog/posts/learning-xilinx-zynq-a-school-project-to-generate-a-set-of-pwm-signals-2---add-overall-control-block-delay-and-pulse-signal</link><pubDate>Fri, 05 May 2023 17:12:21 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:9ecca638-1e6d-4550-b686-54a2a3ccdb9f</guid><dc:creator>Jan Cumps</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Clock signals a bit cleared out, and the&amp;nbsp;domain IP split off from the ZYNQ specific config:&lt;/p&gt;
&lt;p&gt;&lt;img src="/resized-image/__size/1280x720/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-9ecca638-1e6d-4550-b686-54a2a3ccdb9f/pastedimage1683306358334v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;Content of the dark blue rectangle above:&lt;/p&gt;
&lt;p&gt;&lt;img src="/resized-image/__size/1280x720/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-9ecca638-1e6d-4550-b686-54a2a3ccdb9f/pastedimage1683306403573v2.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;It&amp;#39;s not perfect. The design still has timing violations. Maybe I can spin those off to a separate blog post ...&lt;/p&gt;
&lt;p&gt;&lt;img src="/resized-image/__size/1280x720/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-9ecca638-1e6d-4550-b686-54a2a3ccdb9f/pastedimage1683306547730v3.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="/resized-image/__size/1280x720/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-9ecca638-1e6d-4550-b686-54a2a3ccdb9f/pastedimage1683306733190v4.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=25761&amp;AppID=19&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Learning AMD Zynq: a project to generate a set of PWM signals. 2 - add overall control block, delay and pulse signal</title><link>https://community.element14.com/technologies/fpga-group/b/blog/posts/learning-xilinx-zynq-a-school-project-to-generate-a-set-of-pwm-signals-2---add-overall-control-block-delay-and-pulse-signal</link><pubDate>Tue, 25 Apr 2023 06:46:55 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:9ecca638-1e6d-4550-b686-54a2a3ccdb9f</guid><dc:creator>yepe</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Since I successfully had an output (continuous but still), I decided to test the pynq outputs with the half-bridge in just a benchtop experiment. First I added an inverter to the PWMN port (necessary for the gate driver input configuration).&lt;/p&gt;
&lt;p&gt;&lt;img src="/resized-image/__size/1280x720/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-9ecca638-1e6d-4550-b686-54a2a3ccdb9f/pastedimage1682405173295v2.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;Next, after generating the bitstream I can succesfully drive the half-bridge using the pynq outputs [emoticon:0f36700dfeb3494fa10d47dd9e1f90a1]&lt;/p&gt;
&lt;p&gt;&lt;img src="/resized-image/__size/1280x720/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-9ecca638-1e6d-4550-b686-54a2a3ccdb9f/pastedimage1682405121048v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;I used a +-10 V rails and it looks good so far&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=25761&amp;AppID=19&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Learning AMD Zynq: a project to generate a set of PWM signals. 2 - add overall control block, delay and pulse signal</title><link>https://community.element14.com/technologies/fpga-group/b/blog/posts/learning-xilinx-zynq-a-school-project-to-generate-a-set-of-pwm-signals-2---add-overall-control-block-delay-and-pulse-signal</link><pubDate>Tue, 25 Apr 2023 04:57:36 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:9ecca638-1e6d-4550-b686-54a2a3ccdb9f</guid><dc:creator>yepe</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;I had various issues with the project yesterday and for unknown reasons it simply could not find registers. I started over and built the project again from scratch. This time still a couple of critical errors.&lt;br /&gt;&lt;img src="/resized-image/__size/1280x720/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-9ecca638-1e6d-4550-b686-54a2a3ccdb9f/pastedimage1682398479666v1.png" alt=" " /&gt;&lt;br /&gt;But I went forward and generated the bitstream. This time no KeyErrors in the notebook! After writing a couple of commands in the notebook I tested it in the following way:&lt;br /&gt;&lt;img src="/resized-image/__size/1280x720/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-9ecca638-1e6d-4550-b686-54a2a3ccdb9f/pastedimage1682398581579v2.png" alt=" " /&gt;&lt;br /&gt;Then, probing on Y18&amp;amp;Y19, I see an output!&lt;/p&gt;
&lt;p&gt;&lt;img src="/resized-image/__size/1280x720/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-9ecca638-1e6d-4550-b686-54a2a3ccdb9f/tek00010.png" alt=" " /&gt;&lt;br /&gt;The frequency seems to be 4 MHz for some reason, but at least some progress! Very exciting stuff&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=25761&amp;AppID=19&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Learning AMD Zynq: a project to generate a set of PWM signals. 2 - add overall control block, delay and pulse signal</title><link>https://community.element14.com/technologies/fpga-group/b/blog/posts/learning-xilinx-zynq-a-school-project-to-generate-a-set-of-pwm-signals-2---add-overall-control-block-delay-and-pulse-signal</link><pubDate>Mon, 24 Apr 2023 09:20:34 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:9ecca638-1e6d-4550-b686-54a2a3ccdb9f</guid><dc:creator>yepe</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;I am following along trying to implement the design on my end. I created the following block diagram with the Pwm.vhd file from your last post&lt;/p&gt;
&lt;p&gt;&lt;img src="/resized-image/__size/1280x720/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-9ecca638-1e6d-4550-b686-54a2a3ccdb9f/pastedimage1682327760618v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;Synthesis and implementation completes, but generating the bitstream fails. Maybe I did something wrong in the block diagram or in the customization of the blocks? Or maybe I am lacking a constraint file? The internal mechanisms of the AXI interconnects are a bit of a mystery for me [emoticon:6d505171faa4497c85c5ca27290c555d]&lt;br /&gt;[embed:dc8ab71f-3b98-42d9-b0f6-e21e02a0f8e2:9ad5060d-3f95-472b-9afb-b73a7083771d:type=text&amp;text=Command%3A%20write_bitstream%20-force%20Pwm.bit%0AAttempting%20to%20get%20a%20license%20for%20feature%20%27Implementation%27%20and%2For%20device%20%27xc7z020%27%0AINFO%3A%20%5BCommon%2017-349%5D%20Got%20license%20for%20feature%20%27Implementation%27%20and%2For%20device%20%27xc7z020%27%0ARunning%20DRC%20as%20a%20precondition%20to%20command%20write_bitstream%0AINFO%3A%20%5BIP_Flow%2019-234%5D%20Refreshing%20IP%20repositories%0AINFO%3A%20%5BIP_Flow%2019-1704%5D%20No%20user%20IP%20repositories%20specified%0AINFO%3A%20%5BIP_Flow%2019-2313%5D%20Loaded%20Vivado%20IP%20repository%20%27C%3A%2FXilinx%2FVivado%2F2022.2%2Fdata%2Fip%27.%0AINFO%3A%20%5BDRC%2023-27%5D%20Running%20DRC%20with%202%20threads%0AERROR%3A%20%5BDRC%20NSTD-1%5D%20Unspecified%20I%2FO%20Standard%3A%2015%20out%20of%2015%20logical%20ports%20use%20I%2FO%20standard%20%28IOSTANDARD%29%20value%20%27DEFAULT%27%2C%20instead%20of%20a%20user%20assigned%20specific%20value.%20This%20may%20cause%20I%2FO%20contention%20or%20incompatibility%20with%20the%20board%20power%20or%20connectivity%20affecting%20performance%2C%20signal%20integrity%20or%20in%20extreme%20cases%20cause%20damage%20to%20the%20device%20or%20the%20components%20to%20which%20it%20is%20connected.%20To%20correct%20this%20violation%2C%20specify%20all%20I%2FO%20standards.%20This%20design%20will%20fail%20to%20generate%20a%20bitstream%20unless%20all%20logical%20ports%20have%20a%20user%20specified%20I%2FO%20standard%20value%20defined.%20To%20allow%20bitstream%20creation%20with%20unspecified%20I%2FO%20standard%20values%20%28not%20recommended%29%2C%20use%20this%20command%3A%20set_property%20SEVERITY%20%7BWarning%7D%20%5Bget_drc_checks%20NSTD-1%5D.%20%20NOTE%3A%20When%20using%20the%20Vivado%20Runs%20infrastructure%20%28e.g.%20launch_runs%20Tcl%20command%29%2C%20add%20this%20command%20to%20a%20.tcl%20file%20and%20add%20that%20file%20as%20a%20pre-hook%20for%20write_bitstream%20step%20for%20the%20implementation%20run.%20Problem%20ports%3A%20band_i%5B3%3A0%5D%2C%20duty_i%5B5%3A0%5D%2C%20clk_i%2C%20enable_i%2C%20n_reset_i%2C%20pwmA_o%2C%20and%20pwmB_o.%0AERROR%3A%20%5BDRC%20UCIO-1%5D%20Unconstrained%20Logical%20Port%3A%2015%20out%20of%2015%20logical%20ports%20have%20no%20user%20assigned%20specific%20location%20constraint%20%28LOC%29.%20This%20may%20cause%20I%2FO%20contention%20or%20incompatibility%20with%20the%20board%20power%20or%20connectivity%20affecting%20performance%2C%20signal%20integrity%20or%20in%20extreme%20cases%20cause%20damage%20to%20the%20device%20or%20the%20components%20to%20which%20it%20is%20connected.%20To%20correct%20this%20violation%2C%20specify%20all%20pin%20locations.%20This%20design%20will%20fail%20to%20generate%20a%20bitstream%20unless%20all%20logical%20ports%20have%20a%20user%20specified%20site%20LOC%20constraint%20defined.%20%20To%20allow%20bitstream%20creation%20with%20unspecified%20pin%20locations%20%28not%20recommended%29%2C%20use%20this%20command%3A%20set_property%20SEVERITY%20%7BWarning%7D%20%5Bget_drc_checks%20UCIO-1%5D.%20%20NOTE%3A%20When%20using%20the%20Vivado%20Runs%20infrastructure%20%28e.g.%20launch_runs%20Tcl%20command%29%2C%20add%20this%20command%20to%20a%20.tcl%20file%20and%20add%20that%20file%20as%20a%20pre-hook%20for%20write_bitstream%20step%20for%20the%20implementation%20run.%20%20Problem%20ports%3A%20band_i%5B3%3A0%5D%2C%20duty_i%5B5%3A0%5D%2C%20clk_i%2C%20enable_i%2C%20n_reset_i%2C%20pwmA_o%2C%20and%20pwmB_o.%0AWARNING%3A%20%5BDRC%20ZPS7-1%5D%20PS7%20block%20required%3A%20The%20PS7%20cell%20must%20be%20used%20in%20this%20Zynq%20design%20in%20order%20to%20enable%20correct%20default%20configuration.%0AINFO%3A%20%5BVivado%2012-3199%5D%20DRC%20finished%20with%202%20Errors%2C%201%20Warnings%0AINFO%3A%20%5BVivado%2012-3200%5D%20Please%20refer%20to%20the%20DRC%20report%20%28report_drc%29%20for%20more%20information.%0AERROR%3A%20%5BVivado%2012-1345%5D%20Error%28s%29%20found%20during%20DRC.%20Bitgen%20not%20run.%0AINFO%3A%20%5BCommon%2017-83%5D%20Releasing%20license%3A%20Implementation%0A15%20Infos%2C%201%20Warnings%2C%200%20Critical%20Warnings%20and%203%20Errors%20encountered.%0Awrite_bitstream%20failed%0AERROR%3A%20%5BCommon%2017-39%5D%20%27write_bitstream%27%20failed%20due%20to%20earlier%20errors.]&lt;/p&gt;
&lt;p&gt;Looking at the log, it seems to be related to IO&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=25761&amp;AppID=19&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Learning AMD Zynq: a project to generate a set of PWM signals. 2 - add overall control block, delay and pulse signal</title><link>https://community.element14.com/technologies/fpga-group/b/blog/posts/learning-xilinx-zynq-a-school-project-to-generate-a-set-of-pwm-signals-2---add-overall-control-block-delay-and-pulse-signal</link><pubDate>Sun, 23 Apr 2023 10:19:32 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:9ecca638-1e6d-4550-b686-54a2a3ccdb9f</guid><dc:creator>Jan Cumps</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;A capture with a little logic analyser (that runs on a Spartan 6).&lt;/p&gt;
&lt;p&gt;You see the PWM and PWMN, with 3 clocks of dead band. And the PULSE signal&lt;/p&gt;
&lt;p&gt;&lt;img height="76" src="/resized-image/__size/1280x152/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-9ecca638-1e6d-4550-b686-54a2a3ccdb9f/pastedimage1682244929721v2.png" width="640" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;Begin&lt;/p&gt;
&lt;p&gt;&lt;img height="235" src="/resized-image/__size/1280x470/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-9ecca638-1e6d-4550-b686-54a2a3ccdb9f/pastedimage1682244978086v3.png" width="640" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;Tail&lt;/p&gt;
&lt;p&gt;&lt;img height="190" src="/resized-image/__size/1280x380/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-9ecca638-1e6d-4550-b686-54a2a3ccdb9f/pastedimage1682245159107v5.png" width="640" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;Looks like PULSE falls a little too early?&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=25761&amp;AppID=19&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Learning AMD Zynq: a project to generate a set of PWM signals. 2 - add overall control block, delay and pulse signal</title><link>https://community.element14.com/technologies/fpga-group/b/blog/posts/learning-xilinx-zynq-a-school-project-to-generate-a-set-of-pwm-signals-2---add-overall-control-block-delay-and-pulse-signal</link><pubDate>Sat, 22 Apr 2023 22:35:53 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:9ecca638-1e6d-4550-b686-54a2a3ccdb9f</guid><dc:creator>Jan Cumps</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;test of using a control block, that generates a PULSE signal and controls the pulse train:&lt;br /&gt;&lt;img src="/resized-image/__size/1280x720/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-9ecca638-1e6d-4550-b686-54a2a3ccdb9f/pastedimage1682202941078v2.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=25761&amp;AppID=19&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item></channel></rss>