<div dir="ltr">Below is the course proposal for a MATLAB class. It's virtual (remote). The goal is to cover multirate signal processing and HDL Coder for advanced open source implementations of digital communications designs using FPGAs. <br><br>We need your feedback on this class.<br><br>If you are interested in taking it, give a scale of 1 to 5 on how likely it is that you will commit. You can reply privately or publicly about any aspect of this class and level of interest.<div><br>Please give feedback by 3 April. We have a short turnaround time for this due to the instructor's schedule. MATLAB has one instructor for the level of material that we need and they are in demand. <br>:+)<br><br>Here's the proposed outline:<br><br>-=-=-=-=-=-=-=-=-=-=-=-<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>-=-=-=-=-=-=-=-=-=-=-=-<br><br>Thank you!<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></div></div>