<?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>Blog - All Comments</title><link>/technologies/fpga-group/b/blog</link><description /><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>RE: High Speed Fiber Optic Data Transmission</title><link>https://community.element14.com/technologies/fpga-group/b/blog/posts/high-speed-fiber-optic-data-transmission</link><pubDate>Tue, 06 Oct 2026 19:05:15 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:0fd89a3c-6ba3-4146-8989-b471495ca99e</guid><dc:creator>DAB</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Very good post.&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=30215&amp;AppID=19&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Tang Nano Series and Gowin FPGAs for Beginners: A Practical Guide, Part 1</title><link>https://community.element14.com/technologies/fpga-group/b/blog/posts/tang-nano-series-and-gowin-fpgas-for-beginners-a-practical-guide-part-1</link><pubDate>Tue, 06 Oct 2026 19:00:18 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:06412096-84ad-4180-9f54-1fc4e8f506da</guid><dc:creator>DAB</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Very good overview of the devices.&lt;/p&gt;
&lt;p&gt;I look forward to seeing how you make them into something useful.&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=30265&amp;AppID=19&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Tang Nano Series and Gowin FPGAs for Beginners: A Practical Guide, Part 1</title><link>https://community.element14.com/technologies/fpga-group/b/blog/posts/tang-nano-series-and-gowin-fpgas-for-beginners-a-practical-guide-part-1</link><pubDate>Mon, 05 Oct 2026 17:32:40 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:06412096-84ad-4180-9f54-1fc4e8f506da</guid><dc:creator>dang74</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Thanks&amp;nbsp;[mention:b0bc65b9ecdc4307bd967592f00e340a:e9ed411860ed4f2ba0265705b8793d05]&amp;nbsp;I have the both 1k and 9k boards.&amp;nbsp; Sadly, I have not used them yet... but you wrote a nice overview and perhaps that will serve as an inspiration.&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=30265&amp;AppID=19&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Tang Nano Series and Gowin FPGAs for Beginners: A Practical Guide, Part 1</title><link>https://community.element14.com/technologies/fpga-group/b/blog/posts/tang-nano-series-and-gowin-fpgas-for-beginners-a-practical-guide-part-1</link><pubDate>Mon, 05 Oct 2026 09:30:18 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:06412096-84ad-4180-9f54-1fc4e8f506da</guid><dc:creator>michaelkellett</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Thanks for this&amp;nbsp; - I look forward to seeing what you make it do !&lt;/p&gt;
&lt;p&gt;The Tang boards are pretty good value and the Gowin FPGAs are getting quite good. I have some Tang bits to play with but all my time is being used up on an Artix 7 project at the moment.&lt;/p&gt;
&lt;p&gt;Gowin say that they have a simulator:&lt;/p&gt;
&lt;p&gt;&lt;img src="/resized-image/__size/1280x720/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-06412096-84ad-4180-9f54-1fc4e8f506da/pastedimage1791192549034v1.png" alt=" " /&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;MK&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=30265&amp;AppID=19&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Tang Nano Series and Gowin FPGAs for Beginners: A Practical Guide, Part 1</title><link>https://community.element14.com/technologies/fpga-group/b/blog/posts/tang-nano-series-and-gowin-fpgas-for-beginners-a-practical-guide-part-1</link><pubDate>Mon, 05 Oct 2026 09:10:50 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:06412096-84ad-4180-9f54-1fc4e8f506da</guid><dc:creator>jc2048</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Thanks. A useful introduction to the Tang boards and their Gowin FPGAs.&lt;/p&gt;
&lt;p&gt;They all look useful for different kinds of things. The 1k for learning the fundamentals of basic logic design, the 9k would lend itself nicely to experimenting with simple soft processors, and the 20k for more ambious stuff - you could do a whole music synthesizer with that one.&lt;/p&gt;
&lt;p&gt;Presumably, the separate clock synthesizer chip is there for the specialised clocks you need for audio and video work.&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=30265&amp;AppID=19&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Tang Nano Series and Gowin FPGAs for Beginners: A Practical Guide, Part 1</title><link>https://community.element14.com/technologies/fpga-group/b/blog/posts/tang-nano-series-and-gowin-fpgas-for-beginners-a-practical-guide-part-1</link><pubDate>Mon, 05 Oct 2026 07:33:22 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:06412096-84ad-4180-9f54-1fc4e8f506da</guid><dc:creator>kk99</dc:creator><slash:comments>3</slash:comments><description>&lt;p&gt;I haven&amp;rsquo;t used an FPGA with Gowin yet. I found a nice, minimalist and inexpensive board with an Artix-7:&lt;br /&gt;&lt;img src="/resized-image/__size/1280x720/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-06412096-84ad-4180-9f54-1fc4e8f506da/pastedimage1791185481372v1.png" alt=" " /&gt;&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=30265&amp;AppID=19&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Tang Nano Series and Gowin FPGAs for Beginners: A Practical Guide, Part 1</title><link>https://community.element14.com/technologies/fpga-group/b/blog/posts/tang-nano-series-and-gowin-fpgas-for-beginners-a-practical-guide-part-1</link><pubDate>Mon, 05 Oct 2026 06:11:30 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:06412096-84ad-4180-9f54-1fc4e8f506da</guid><dc:creator>embeddedguy</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Nice information. I think Pi Pico PIO peripheral would have some limitations compared to FPGA. Otherwise, I would love to work on PIO using C/C++ to avoid learning VHDL or similar.&amp;nbsp;[emoticon:c4563cd7d5574777a71c318021cbbcc8]&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=30265&amp;AppID=19&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: High Speed Fiber Optic Data Transmission</title><link>https://community.element14.com/technologies/fpga-group/b/blog/posts/high-speed-fiber-optic-data-transmission</link><pubDate>Sat, 19 Sep 2026 15:30:41 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:0fd89a3c-6ba3-4146-8989-b471495ca99e</guid><dc:creator>Qbit</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Excited to see!&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=30215&amp;AppID=19&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Hardware Accelerator for Hyperspectral Image Processing</title><link>https://community.element14.com/technologies/fpga-group/b/blog/posts/hardware-accelerator-for-hyperspectral-image-processing</link><pubDate>Tue, 14 Jul 2026 20:54:21 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:098d4647-1d97-4032-a5a7-20edd71cfbcb</guid><dc:creator>DAB</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;I worked on an extensive hyperspectral analysis station before I retired.&lt;/p&gt;
&lt;p&gt;We did a lot of analysis on computer architectures available to process the data and create hyperspectral vectors for locating targets of interest in all of the data.&lt;/p&gt;
&lt;p&gt;We had a lot of technics for simplifying the data using fairly strait forward math.&lt;/p&gt;
&lt;p&gt;Your approach looks interesting for certain types of data operations.&lt;/p&gt;
&lt;p&gt;Send me your link so I can look at it in more detail.&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=29962&amp;AppID=19&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Hardware Accelerator for Hyperspectral Image Processing</title><link>https://community.element14.com/technologies/fpga-group/b/blog/posts/hardware-accelerator-for-hyperspectral-image-processing</link><pubDate>Tue, 14 Jul 2026 15:14:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:098d4647-1d97-4032-a5a7-20edd71cfbcb</guid><dc:creator>manojroy123</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Very interesting project.&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=29962&amp;AppID=19&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Fast VHDL CORDIC Sine and Cosine Component on Lattice XP2 Device Using Diamond 3.12 Part 2</title><link>https://community.element14.com/technologies/fpga-group/b/blog/posts/fast-vhdl-cordic-sine-and-cosine-component-on-lattice-xp2-device-using-diamond-3-12-part-2</link><pubDate>Sun, 07 Jun 2026 14:46:24 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:9a8d0b3f-5d30-44fa-a128-53cc8958eeea</guid><dc:creator>jc2048</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Here is the sine and cosine in more detail&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="/resized-image/__size/1280x720/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-9a8d0b3f-5d30-44fa-a128-53cc8958eeea/Screenshot_5F00_2026_2D00_06_2D00_07_5F00_10_2D00_03_2D00_14.png" /&gt;&lt;/p&gt;
&lt;p&gt;and here&amp;#39;s the spectrum view&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="/resized-image/__size/1280x720/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-9a8d0b3f-5d30-44fa-a128-53cc8958eeea/Screenshot_5F00_2026_2D00_06_2D00_07_5F00_09_2D00_56_2D00_06.png" /&gt;&lt;/p&gt;
&lt;p&gt;with, and this surprised me, a THD figure of 0.005% (if you look closely, there isn&amp;#39;t anything much at the actual harmonics). So the CORDIC calculation of the sine must be fairly accurate. Presumably the other lines, clustered around the fundamental, are intermodulation products (but what would be the source of the interference?).&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=29528&amp;AppID=19&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Lattice iCEstick EVB Generating Three-Phase Sinewaves with Sigma-Delta DACs Using iCEcube2 and 

VHDL</title><link>https://community.element14.com/technologies/fpga-group/b/blog/posts/lattice-icestick-evb-generating-three-phase-sinewaves-with-sigma-delta-dacs-using-icecube2-and-vhdl</link><pubDate>Sun, 07 Jun 2026 14:42:51 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:83968635-734c-4822-b591-e9de68b44683</guid><dc:creator>jc2048</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Here are two of the output waveforms in higher resolution than my 8-bit Tek scope can manage.&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="/resized-image/__size/1280x720/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-83968635-734c-4822-b591-e9de68b44683/Screenshot_5F00_2026_2D00_06_2D00_07_5F00_09_2D00_37_2D00_58.png" /&gt;&lt;/p&gt;
&lt;p&gt;Quite nice looking sine waves, though if we look at it in the spectrum view there are enough harmonics present for a THD figure of about 0.6%.&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="/resized-image/__size/1280x720/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-83968635-734c-4822-b591-e9de68b44683/Screenshot_5F00_2026_2D00_06_2D00_07_5F00_09_2D00_40_2D00_46.png" /&gt;&lt;/p&gt;
&lt;p&gt;The resolution of the PicoScope is good enough to show me some intriguing, regular sidebands around the fundamental at 50Hz.&lt;/p&gt;
&lt;p&gt;This next spectrum view, over a wider span, is also interesting because it shows some output aliasing at multiples of my sample rate (12kbps). Although they&amp;#39;re fairly well down, the simple RC filter hasn&amp;#39;t totally wiped them out.&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="/resized-image/__size/1280x720/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-83968635-734c-4822-b591-e9de68b44683/Screenshot_5F00_2026_2D00_06_2D00_07_5F00_09_2D00_42_2D00_22.png" /&gt;&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=28984&amp;AppID=19&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Lattice iCE40UP5K-EVB Evaluation Board - Part 2: Using the DSP Multiplier</title><link>https://community.element14.com/technologies/fpga-group/b/blog/posts/lattice-ice40up5k-evb-evaluation-board---part-2-using-the-dsp-multiplier</link><pubDate>Sun, 19 Apr 2026 14:22:46 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:945974a6-316c-47b3-b406-1c55ba707e6b</guid><dc:creator>jc2048</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I mentioned in the blog that what I was generating with my simple, single multiply of two signed quantities wasn&amp;#39;t straight amplitude modulation, but rather double-sideband, suppressed-carrier. Here I&amp;#39;ve reworked the VHDL to give some actual AM. This multiplies the envelope by 0.3, adds 0.5 to make it purely positive, and then multiplies it with the carrier.&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="/resized-image/__size/1280x720/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-945974a6-316c-47b3-b406-1c55ba707e6b/TEK00038.PNG" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=" " src="/resized-image/__size/1280x720/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-945974a6-316c-47b3-b406-1c55ba707e6b/TEK00039.PNG" /&gt;&lt;br /&gt;You can see now, from the FFT, that there&amp;#39;s a carrier (7kHz) and two sidebands, each spaced 440Hz away from the carrier.&lt;/p&gt;
&lt;p&gt;Here&amp;#39;s the VHDL&lt;/p&gt;
&lt;p&gt;[embed:dc8ab71f-3b98-42d9-b0f6-e21e02a0f8e2:e3e1f98d-2832-4b43-ae64-c4db32993e89:type=text&amp;text=----------------------------------------------------------------------%0D%0A--%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2A%2A%2A%2A%2A%20ice40up5k_evn_test_mult.vhd%20%2A%2A%2A%2A%2A%20%20%20%20%20%20%20%20%20%20%20%20%20--%0D%0A--%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20--%0D%0A--%20Lattice%20ICE40UP5K%20evaluation%20board%20multiplier%20test.%20%20%20%20%20%20%20%20%20%20%20%20%20%20--%0D%0A--%20Generates%20fixed%20pair%20of%20CORDIC%2016-bit%20sine%20waves%2C%20multiplies%20them--%20%0D%0A--%20and%20formats%20result%20for%20an%20S%2FPDIF%20serial%20optical%20link.%20%20%20%20%20%20%20%20%20%20%20%20--%0D%0A--%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20--%0D%0A----------------------------------------------------------------------%0D%0A--%20%28C%292026%20Jon%20Clift%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20--%0D%0A--%20Free%20to%20use%20however%20you%20want.%20No%20warranty%20as%20to%20correctness.%20%20%20%20%20--%0D%0A--%20No%20guarantee%20of%20fitness%20for%20any%20purpose.%20No%20obligation%20to%20support--%0D%0A----------------------------------------------------------------------%0D%0A--%20Rev%20%20%20%20Date%20%20%20%20%20%20%20%20%20Comments%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20--%0D%0A--%2001%20%20%20%20%2025-Mar-2026%20%20based%20on%20ice40up5k_evn_test.vhd%20%20%20%20%20%20%20%20%20%20%20%20%20%20--%0D%0A--%2002%20%20%20%20%2012-Apr-2026%20%20hacked%20to%20give%20amplitude%20modulation%20%20%20%20%20%20%20%20%20%20--%0D%0A----------------------------------------------------------------------%0D%0A%0D%0Alibrary%20ieee%3B%20%0D%0Ause%20ieee.std_logic_1164.all%3B%0D%0Ause%20ieee.numeric_std.all%3B%0D%0Ause%20ieee.math_real.all%3B%0D%0A%0D%0Aentity%20ice40up5k_evn_test%20is%20port%28%0D%0A%20%20%20%20clk_12%3A%20%20%20%20%20%20%20%20%20%20%20%20in%20STD_LOGIC%3B%20%20%20%20%20%20%20%20%20%20---%20system%20clock%20in%20%28from%2012MHz%20oscillator%29%0D%0A%20%20%20%20clk_12_288%3A%20%20%20%20%20%20%20%20in%20STD_LOGIC%3B%20%20%20%20%20%20%20%20%20%20---%20clock%20in%20%28from%20my%2012.288MHz%20oscillator%29%0D%0A%20%20%20%20tp1%3A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20out%20STD_LOGIC%3B%20%20%20%20%20%20%20%20---%20scope%20trigger%20at%20start%20of%20frame%0D%0A%20%20%20%20spdif_out%3A%20%20%20%20%20%20%20%20%20out%20STD_LOGIC%29%3B%20%20%20%20%20%20%20%20---%20s%2Fpdif%20data%20stream%20%28to%20optical%20tx%29%0D%0Aend%20ice40up5k_evn_test%3B%0D%0A%0D%0Aarchitecture%20arch_ice40up5k_evn_test%20of%20ice40up5k_evn_test%20is%0D%0A%0D%0Aconstant%20sig_resol%3A%20POSITIVE%20%3A%3D%2016%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20---%20signal%20resolution%20%28bits%29%0D%0Aconstant%20pha_resol%3A%20POSITIVE%20%3A%3D%2032%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20---%20phase%20resolution%20%28bits%29%0D%0Asignal%20theta%3A%20SIGNED%28pha_resol-1%20downto%200%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20---%20phase%20accumulator%0D%0Asignal%20theta_left%3A%20SIGNED%28pha_resol-1%20downto%200%29%3B%20%20%20%20%20%20%20%20%20%20%20---%20left%20phase%20accumulator%0D%0Asignal%20theta_right%3A%20SIGNED%28pha_resol-1%20downto%200%29%3B%20%20%20%20%20%20%20%20%20%20---%20right%20phase%20accumulator%0D%0Asignal%20phase_increment_left%3A%20SIGNED%28pha_resol-1%20downto%200%29%3B%20---%20left%20phase%20increment%0D%0Asignal%20phase_increment_right%3A%20SIGNED%28pha_resol-1%20downto%200%29%3B%20---%20right%20phase%20increment%0D%0Asignal%20sine%3A%20SIGNED%28sig_resol-1%20downto%200%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20---%20CORDIC%20generated%20sine%0D%0Asignal%20cosine%3A%20SIGNED%28sig_resol-1%20downto%200%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20---%20CORDIC%20generaated%20cosine%0D%0Asignal%20sample_left%3A%20SIGNED%2815%20downto%200%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20---%20left%20sample%0D%0Asignal%20sample_right%3A%20SIGNED%2815%20downto%200%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20---%20right%20sample%0D%0Asignal%20sample_2%3A%20SIGNED%2815%20downto%200%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20---%20right%20sample%0D%0Asignal%20temp%3A%20SIGNED%2831%20downto%200%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20---%20%0D%0Asignal%20temp2%3A%20SIGNED%2831%20downto%200%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20---%20%0D%0Asignal%20mult_result%3A%20SIGNED%2831%20downto%200%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20---%20%0D%0Asignal%20sample_temp%3A%20SIGNED%2815%20downto%200%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20---%20%0D%0Asignal%20delay_i%3A%20STD_LOGIC%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20---%0D%0Asignal%20delay_o%3A%20STD_LOGIC%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20---%20%0D%0Asignal%20delay_o_1%3A%20STD_LOGIC%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20---%20%0D%0Asignal%20delay_o_2%3A%20STD_LOGIC%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20---%20%0D%0Asignal%20delay_o_3%3A%20STD_LOGIC%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20---%20%0D%0Asignal%20spdif_clk_en%3A%20STD_LOGIC%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20---%20%0D%0Asignal%20spdif_sample_en%3A%20STD_LOGIC%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20---%20%0D%0Asignal%20sample_en_del1%3A%20STD_LOGIC%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20---%20%0D%0Asignal%20sample_en_del2%3A%20STD_LOGIC%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20---%20%0D%0Asignal%20prescale_count%3A%20UNSIGNED%281%20downto%200%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20---%20%0D%0A%0D%0A---%20declare%20the%20s%2Fpdif%20output%20component%0D%0A%0D%0Acomponent%20spdif_out_component%20is%0D%0A%20%20%20%20generic%28%0D%0A%20%20%20%20%20%20%20%20in_res%3A%20POSITIVE%29%3B%20%20%20%20%20%20%20%20%20%20%20---%20audio%20sample%20resolution%0D%0A%20%20%20%20port%20%28%0D%0A%20%20%20%20%20%20%20%20clk_in%3A%20in%20STD_LOGIC%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20---%20clock%0D%0A%20%20%20%20%20%20%20%20clk_en%3A%20in%20STD_LOGIC%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20---%20clock%20enable%0D%0A%20%20%20%20%20%20%20%20l_data%3A%20in%20SIGNED%28in_res-1%20downto%200%29%3B%20%20%20%20%20%20%20%20%20%20%20---%20left%20audio%20data%20in%0D%0A%20%20%20%20%20%20%20%20r_data%3A%20in%20SIGNED%28in_res-1%20downto%200%29%3B%20%20%20%20%20%20%20%20%20%20%20---%20right%20audio%20data%20in%0D%0A%20%20%20%20%20%20%20%20next_sample_en%3A%20out%20STD_LOGIC%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20---%20trigger%20sample%20update%0D%0A%20%20%20%20%20%20%20%20spdif_data_out%3A%20out%20STD_LOGIC%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20---%20output%20bitstream%0D%0Aend%20component%3B%0D%0A%0D%0A---%20declare%20the%20CORDIC%20component%0D%0A%0D%0Acomponent%20cordic%20is%0D%0A%20%20%20%20generic%28%0D%0A%20%20%20%20%20%20%20%20input_resol%3A%20POSITIVE%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20---%20input%20resolution%0D%0A%20%20%20%20%20%20%20%20output_resol%3A%20POSITIVE%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20---%20output%20resolution%0D%0A%20%20%20%20port%28%0D%0A%20%20%20%20%20%20%20%20clk_in%3A%20in%20STD_LOGIC%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20---%20clock%20in%0D%0A%20%20%20%20%20%20%20%20delay_in%3A%20in%20STD_LOGIC%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20---%20delay%20in%0D%0A%20%20%20%20%20%20%20%20delay_out%3A%20out%20STD_LOGIC%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20---%20delay%20out%0D%0A%20%20%20%20%20%20%20%20theta%3A%20in%20SIGNED%28pha_resol-1%20downto%200%29%3B%20%20%20%20---%20phase%20in%0D%0A%20%20%20%20%20%20%20%20sine%3A%20out%20SIGNED%28sig_resol-1%20downto%200%29%3B%20%20%20%20---%20sine%20out%0D%0A%20%20%20%20%20%20%20%20cosine%3A%20out%20SIGNED%28sig_resol-1%20downto%200%29%29%3B%20---%20cosine%20out%0D%0Aend%20component%3B%0D%0A%0D%0Abegin%0D%0A%0D%0A%20%20%20%20---%20main%20process%0D%0A%20%20%20%20---%20runs%20two%20phase%20accumulators%20%28440Hz%20envelope%20and%207kHz%20carrier%29%0D%0A%20%20%20%20---%20CORDIC%20component%20calculates%20sine%20of%20each%0D%0A%09---%20first%20multiplier%20used%20to%20scale%20envelope%20%28to%20give%20lesss%20than%20100%25%20mod%29%2C%20and%20offset%20then%20added%20so%20that%20it%27s%20only%20positive%0D%0A%09---%20second%20multiplier%20then%20multiplies%20new%20envelope%20and%20carrier%20to%20generate%20amplitude%20modulation%0D%0A%20%20%20%20---%20result%20and%20envelope%20handed%20to%20spdif%20component%20for%20output%20formatting%0D%0A%09---%20%28putting%20envelope%20on%20other%20channel%20gives%20scope%20something%20sensible%20to%20trigger%20on%29%0D%0A%0D%0A%20%20%20%20evb_test_stuff%3A%20process%20%28clk_12_288%29%20is%0D%0A%20%20%20%20begin%0D%0A%0D%0A%20%20%20%20%20%20%20%20if%20%28clk_12_288%27event%20and%20clk_12_288%20%3D%20%271%27%29%20then%0D%0A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20---%20divide%20clock%20by%202%20to%20run%20SPDIF%20at%206.144MHz%20for%2048ksps%0D%0A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20if%28spdif_clk_en%20%3D%20%270%27%29%20then%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20spdif_clk_en%20%3C%3D%20%271%27%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20else%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20spdif_clk_en%20%3C%3D%20%270%27%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20end%20if%3B%0D%0A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28spdif_sample_en%20%3D%20%271%27%29%20then%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20theta_left%20%3C%3D%20theta_left%20%2B%20phase_increment_left%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20theta_right%20%3C%3D%20theta_right%20%2B%20phase_increment_right%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20end%20if%3B%0D%0A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20sample_en_del1%20%3C%3D%20spdif_sample_en%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20sample_en_del2%20%3C%3D%20sample_en_del1%3B%0D%0A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28spdif_sample_en%20%3D%20%271%27%29%20then%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20delay_i%20%3C%3D%20%271%27%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20elsif%28sample_en_del2%20%3D%20%271%27%29%20then%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20delay_i%20%3C%3D%20%270%27%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20end%20if%3B%0D%0A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28sample_en_del1%20%3D%20%271%27%29%20then%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20theta%20%3C%3D%20theta_right%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20else%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20theta%20%3C%3D%20theta_left%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20end%20if%3B%0D%0A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20delay_o_1%20%3C%3D%20delay_o%3B%0D%0A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28delay_o%20%3D%20%271%27%20and%20delay_o_1%20%3D%20%270%27%29%20then%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sample_left%20%3C%3D%20sine%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20---%20put%20the%20envelope%20sine%20on%20one%20output%20for%20the%20scope%20to%20trigger%20on%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20temp%20%3C%3D%20sine%20%2A%20to_signed%289830%2C16%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20---%20x%200.3%20the%20envelope%20to%20reduce%20mod%20depth%0D%0A%09%09%09%09sample_temp%20%3C%3D%20temp%2831%20downto%2016%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20---%20because%20output%20of%20multiplier%20was%2032%20bits%20and%20we%20want%20the%20higher%2016%20bits%0D%0A%09%09%09%09delay_o_2%20%3C%3D%20%271%27%3B%0D%0A%09%09%09else%0D%0A%09%09%09%09delay_o_2%20%3C%3D%20%270%27%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20end%20if%3B%0D%0A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28delay_o_2%20%3D%20%271%27%29%20then%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sample_2%20%3C%3D%20sine%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20---%20pick%20up%20the%20carrier%20sine%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sample_temp%20%3C%3D%20sample_temp%20%2B%20to_signed%2816384%2C16%29%3B%20%20%20---%20lift%20envelope%20by%20adding%20%2B0.5%20offset%2C%20so%20envelope%20is%20now%20all%20positive%0D%0A%09%09%09%09delay_o_3%20%3C%3D%20%271%27%3B%0D%0A%09%09%09else%0D%0A%09%09%09%09delay_o_3%20%3C%3D%20%270%27%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20end%20if%3B%0D%0A%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20if%20%28delay_o_3%20%3D%20%271%27%29%20then%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20temp2%20%3C%3D%20sample_temp%20%2A%20sample_2%3B%20%20%20%20%20%20%20%20%20%20---%20multiply%20by%20the%20carrier%20to%20give%20the%20AM%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20sample_right%20%3C%3D%20temp2%2831%20downto%2016%29%3B%20%20%20%20%20%20%20---%20again%2C%20adjust%20multiplier%20output%20back%20to%2016%20bits%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20end%20if%3B%0D%0A%0D%0A%20%20%20%20%20%20%20%20end%20if%3B%0D%0A%0D%0A%20%20%20%20%20%20%20%20phase_increment_left%2831%20downto%200%29%20%3C%3D%20b%220000_0010_0101_1000_1011_1111_0010_0110%22%3B%20%20%20%20---%20440Hz%20%0D%0A%20%20%20%20%20%20%20%20phase_increment_right%2831%20downto%200%29%20%3C%3D%20b%220010_0101_1000_1100_0001_0001_0100_1100%22%3B%20%20%20---%207040.1Hz%0D%0A%0D%0A%0D%0A%20%20%20%20end%20process%20evb_test_stuff%3B%0D%0A%0D%0A%20%20%20%20---%20instantiate%20and%20connect%20the%20spdif%20output%20component%0D%0A%09%09%0D%0A%20%20%20%20spdif_1%3A%20component%20spdif_out_component%0D%0A%20%20%20%20%20%20%20%20generic%20map%28%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20in_res%20%3D%3E%20sig_resol%29%20%20---%20audio%20sample%20resolution%0D%0A%20%20%20%20%20%20%20%20port%20map%28%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20clk_in%20%3D%3E%20clk_12_288%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20clk_en%20%3D%3E%20spdif_clk_en%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20l_data%20%3D%3E%20sample_left%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20r_data%20%3D%3E%20sample_right%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20next_sample_en%20%3D%3E%20spdif_sample_en%2C%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20spdif_data_out%20%3D%3E%20spdif_out%29%3B%0D%0A%0D%0A%20%20%20%20---%20instantiate%20and%20connect%20the%20CORDIC%20component%0D%0A%0D%0A%20%20%20%20cordic_1%3A%20component%20cordic%0D%0A%20%20%20%20%20%20%20%20generic%20map%28%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20input_resol%20%3D%3E%20pha_resol%2C%20%20---%20input%20resolution%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20output_resol%20%3D%3E%20sig_resol%29%20---%20output%20resolution%0D%0A%20%20%20%20%20%20%20%20port%20map%28%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20clk_in%20%3D%3E%20clk_12_288%2C%20%20%20%20%20%20---%20clock%20in%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20delay_in%20%3D%3E%20delay_i%2C%20%20%20%20%20%20%20---%20delay%20in%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20delay_out%20%3D%3E%20delay_o%2C%20%20%20%20%20%20---%20delay%20out%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20theta%20%3D%3E%20theta%2C%20%20%20%20%20%20%20%20%20%20%20%20---%20phase%20in%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20sine%20%3D%3E%20sine%2C%20%20%20%20%20%20%20%20%20%20%20%20%20%20---%20sine%20out%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20cosine%20%3D%3E%20cosine%29%3B%20%20%20%20%20%20%20%20%20---%20cosine%20out%0D%0A%09%09%09%0D%0A%20%20%20%20tp1%20%3C%3D%20spdif_sample_en%3B%20%0D%0A%0D%0Aend%20arch_ice40up5k_evn_test%3B%20%0D%0A]&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=29632&amp;AppID=19&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: The Art of FPGA Design Season 2 Post 21</title><link>https://community.element14.com/technologies/fpga-group/b/blog/posts/the-art-of-fpga-design-season-2-post-21</link><pubDate>Sun, 19 Apr 2026 13:31:53 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:2d5eb677-aff9-421d-a574-6bd0209ae0d3</guid><dc:creator>fpgaguru</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;An errata for the stability condition for the second order all pass section with transfer function H(z)=(c2+c1*z^-1+z^-2)/(1+c1*z^-1+c2*z^-2), the two conditions are abs(c2)&amp;lt;1 and abs(c1)&amp;lt;1+c2, not abs(c1)&amp;lt;1 as stated in the post.&amp;nbsp;&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=29098&amp;AppID=19&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: Lattice iCE40UP5K-EVB Evaluation Board - Part 2: Using the DSP Multiplier</title><link>https://community.element14.com/technologies/fpga-group/b/blog/posts/lattice-ice40up5k-evb-evaluation-board---part-2-using-the-dsp-multiplier</link><pubDate>Mon, 30 Mar 2026 12:13:38 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:945974a6-316c-47b3-b406-1c55ba707e6b</guid><dc:creator>shabaz</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Nice work! And that looks like a great dev board for experimenting/learning.&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=29632&amp;AppID=19&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item></channel></rss>