<div dir="ltr">Thank you to everyone that weighed in on the proposed class. Your time and attention are greatly appreciated and made the outline better.<br><br>We are going to move forward and present this class.<br><br>More information very soon. <br><br>We will need to spread the word so our target market hears about it and has the opportunity to sign up.<br><br clear="all"><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div dir="ltr">-Michelle Thompson<br><br><div dir="ltr"><br></div></div></div></div></div></div></div></div></div><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Apr 3, 2023 at 7:42 PM Michelle Thompson <<a href="mailto:mountain.michelle@gmail.com">mountain.michelle@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">FPGA meetup tomorrow - final review of class proposal, Remote Labs updates<br><br>Please join us tomorrow at 1000 US Pacific for the final review of the MATLAB/HDL Coder class proposal from MathWorks. <br><br>Here is the meeting link:<br><a href="https://us02web.zoom.us/j/84445891791?pwd=cTFGTXhlak55cEN1SkVTeDBmV0dVQT09" target="_blank">https://us02web.zoom.us/j/84445891791?pwd=cTFGTXhlak55cEN1SkVTeDBmV0dVQT09</a><br><br>We have to give a verbal commitment to Mathworks by the end of the day tomorrow (Tuesday 4 April). <br><br>The costs are less than what we originally budgeted right before Covid for in-person training, but they are non-trivial. The class cost to ORI is $5000 a day for 3 days. The final day may be split into two four-hour sections since it involves logging in to hardware to deploy models and make circuits. The four Mathworks classes that this one draws upon are each $750-$1500 *per student*. <br><br>Should we ask for a donation towards the class fee from students? Should we fundraise to defray the costs so that we can continue to organize training in the future? Not everyone can afford what we expect to be ~$1250 per student, but open source workers generally don't have companies paying their bills. <br><br>We need your ideas and thoughts on this. How likely is it that a difficult three day FPGA course given for free remotely over the internet would be skipped or blown off? <br><br>Would a waiting list solve this problem?<br><br>Those are some of the questions we'll discuss tomorrow. <br><br>This is an advanced class that will power through material that is at the heart of modern digital communications. There are several goals here.<br><br>1) Directly serve modern advanced open source digital communications work with focused training on techniques and industry-standard tools. Use these tools to make more open source designs faster and better. <br><br>2) Getting training like this helps us in and of itself. However, using these particular tools, especially HDL Coder, and learning firsthand their advantages and disadvantages, will allow us to inform and improve open source tool makers. This is important. <br><br>Read about open source tools for FPGAs from our guest editor Dr. Daniel Estévez, in our April Inner Circle Newsletter. It will be out this week. <br><br>We must have at least 5 students and no more than 15 absolute maximum (12 recommended). <br><br>As always, we'll have Remote Labs updates during this meeting too.<br><br>Thank you for everyone helping to make ORI a successful organization! Being able to offer training like this for open source experimenters is a privilege and a highlight. We've dealt with multiple delays and setbacks due to things like COVID-19, but we have powered through. And, here we are now, organizing the first of hopefully many opportunities for people that want to do open source digital communications designs for FPGAs and ASICs.<br><br>If you have opinions about this class proposal, please share them via email, or phone (858 229 3399), or tomorrow on the Zoom call. <br><br>For reference, here's the outline below for "HDL Coder for Software Defined Radio"<br><br>COURSE OUTLINE<br>Day 1 - Generating HDL Code from Simulink & DSP for FPGAs<br>Preparing Simulink Models for HDL Code Generation (1.0 hrs)<br>Prepare a Simulink model for HDL code generation. Generate HDL code and testbench for simple models requiring no optimization.<br>• Preparing Simulink models for HDL code generation<br>• Generating HDL code<br>• Generating a test bench<br>• Verifying generated HDL code with an HDL simulator<br>Fixed-Point Precision Control (2.0 hrs)<br>Establish correspondence between generated HDL code and specific Simulink blocks in the model. Use Fixed-Point Tool to finalize fixed point architecture of the model.<br>• Fixed-point scaling and inheritance<br>• Fixed-Point Designer workflow<br>• Fixed-Point Tool<br>• Fundamental adders and multiplier arrays<br>• Division and square root arrays<br>• Wordlength issues and Fixed-point arithmetic<br>• Saturate and wraparound.<br>• Overflow and underflow<br>Optimizing Generated HDL Code (4 hrs)<br>Use pipelines to meet design timing requirements. Use specific hardware implementations and share resources for area optimization.<br>• Generating HDL code with the HDL Workflow Advisor<br>• Meeting timing requirements via pipelining<br>• Choosing specific hardware implementations for compatible Simulink blocks<br>• Sharing FPGA/ASIC resources in subsystems<br>• Verifying that the optimized HDL code is bit-true cycle-accurate<br>• Mapping Simulink blocks to dedicated hardware resources on FPGA<br><br><br><br><br>Day 2 - DSP for FPGAs<br>Signal Flow Graph (SFG) Techniques (SFG) Techniques and high-speed FIR design (2.0 hrs)<br>Review the representation of DSP algorithms using signal flow graph. Use the Cut Set method to improve timing performance. Implement parallel and serial FIR filters.<br>• DSP/Digital Filter Signal Flow Graphs<br>• Latency, delays and "anti-delays"!<br>• Re-timing: Cut-set and delay scaling<br>• The transpose FIR<br>• Pipelining and multichannel architectures<br>• SFG topologies for FPGAs<br>• FIR filter structures for FPGAs<br>Multirate Signal Processing for FPGAs (4.0 hrs)<br>Develop polyphase structure for efficient implementation of multirate filters. Use CIC filter for interpolation and decimation.<br>• Upsampling and interpolation filters<br>• Downsampling and decimation filters<br>• Efficient arithmetic for FIR implementation<br>• Integrators and differentiators<br>• Half-band, moving average and comb filters<br>• Cascade Integrator Comb (CIC) Filters (Hogenauer)<br>• Efficient arithmetic for IIR Filtering<br><br>CORDIC Techniques AND channelizers (2.0 hrs)<br>Introduce CORDIC algorithm for calculation of various trigonometric functions.<br>• CORDIC rotation mode and vector mode<br>• Compute cosine and sine function<br>• Compute vector magnitude and angle<br>• Architecture for FPGA implementation<br>• Channelizer<br><br><br><br><br>Day 3 - Programming Xilinx Zynq SoCs with MATLAB and Simulink & Software-Defined Radio with Zynq using Simulink<br>IP Core Generation and Deployment (2.0 hrs)<br>Use HDL Workflow Advisor to configure a Simulink model, generate and build both HDL and C code, and deploy to Zynq platform.<br>• Configuring a subsystem for programmable logic<br>• Configuring the target interface and peripherals<br>• Generating the IP core and integrating with SDK<br>• Building and deploying the FPGA bitstream<br>• Generating and deploying a software interface model<br>• Tuning parameters with External Mode<br>Model Communications System using Simulink (1.5 hrs)<br>Model and simulate RF signal chain and communications algorithms.<br>• Overview of software-defined radio concepts and workflows<br>• Model and understand AD9361 RF Agile Transceiver using Simulink<br>• Simulate a communications system that includes a transmitter, AD9361 Transceiver, channel and Receiver (RF test environment)<br>Implement Radio I/O with ADI RF SOM and Simulink (1.5 hrs)<br>Verify the operation of baseband transceiver algorithm using real data streamed from the AD9361 into MATLAB and Simulink.<br>• Overview of System object and hardware platform<br>• Set up ADI RF SOM as RF front-end for over-the-air signal capture or transmission<br>• Perform baseband processing in MATLAB and Simulink on captured receive signal<br>• Configure AD9361 registers and filters via System object<br>• Verify algorithm performance for real data versus simulated data<br>Prototype Deployment with Real-Time Data via HW/SW Co-Design (2.0 hrs)<br>Generate HDL and C code targeting the programmable logic (PL) and processing system (PS) on the Zynq SoC to implement TX/RX.<br>• Overview of Zynq HW/SW co-design workflow<br>• Implement Transmitter and Receiver on PL/PS using HW/SW co-design workflow<br>• Configure software interface model<br>• Download generated code to the ARM processor and tune system parameters in real-time operation via Simulink<br>• Deploy a stand-alone system<br><br clear="all"><div><div dir="ltr"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div dir="ltr">-Michelle Thompson<br><div dir="ltr"><br></div></div></div></div></div></div></div></div></div></div>
</blockquote></div>