SystemC Code Generation for DF2T Filter
You can generate SystemC code from MATLAB® design for direct-form II transposed filter.
MATLAB Design
Set up the df2t_filter
model and test bench for this example.
mlhdlc_demo_setup('df2t_filter'); % Design Sqrt design_name = 'mlhdlc_df2t_filter'; % Test Bench for Sqrt testbench_name = 'mlhdlc_df2t_filter_tb';
Review the df2t_filter
design
dbtype(design_name)
1 %#codegen 2 function y = mlhdlc_df2t_filter(x) 3 4 % Copyright 2011-2015 The MathWorks, Inc. 5 6 persistent z; 7 if isempty(z) 8 % Filter states as a column vector 9 z = zeros(2,1); 10 end 11 12 % Filter coefficients as constants 13 b = [0.29290771484375 0.585784912109375 0.292907714843750]; 14 a = [1.0 0.0 0.171600341796875]; 15 16 y = b(1)*x + z(1); 17 z(1) = (b(2)*x + z(2)) - a(2) * y; 18 z(2) = b(3)*x - a(3) * y; 19 20 end
Simulate the Design
It is a best practice to simulate the design with the test bench prior to code generation to check for run-time errors.
mlhdlc_df2t_filter_tb
Create a HDL Coder™ Project
Create an HDL Coder project.
coder -hdlcoder -new mlhdlc_df2t_prj
Next, add the file mlhdlc_df2t_filter.m
to the project as the MATLAB Function and mlhdlc_df2t_filter_tb.m
as the MATLAB Test Bench.
Run Fixed-Point Conversion and SystemC Code Generation
To generate SystemC code from the MATLAB design:
1. At the MATLAB command line, set up the path for SystemC code generation by using the function hdlsetuphlstoolpath
.
2. Start the Workflow Advisor by clicking the Workflow Advisor button.
3. In the HDL Workflow Advisor, select Code Generation Workflow as MATLAB to SystemC.
4. Select Cadence Stratus as the Synthesis tool for Select Code Generation Target.
5. Right-click the SystemC Code Generation task and select Run to selected task to run all the steps from the beginning through the SystemC code generation.
Examine the generated SystemC code by clicking the hyperlinks in the SystemC Code Generation log window. For more information, see Get Started with MATLAB to SystemC Workflow Using HDL Coder App.