⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 the mathworks deutschland - filter design toolbox - implementing the filter chain of a digital down-converter in hdl demo.htm

📁 用于数字下变频器的 FPGA 实现
💻 HTM
📖 第 1 页 / 共 4 页
字号:
            <P>However, here we will use the command line functionality to 
            generate the HDL code.</P>
            <P>Now that we have our fixed-point, three-stage, multirate filter 
            meeting the specs we are ready to generate HDL code.</P>
            <P>Cascade of CIC and two FIR filters and generate VHDL. Note that 
            we're not using the normalized CIC for code generation. The 
            normalized CIC was used for visualization purposes only. </P><PRE class=code>hcas = cascade(hcic,hcfir,hpfir);
workingdir = tempname;
generatehdl(hcas,<SPAN class=string>'Name'</SPAN>,<SPAN class=string>'filter'</SPAN>,<SPAN class=string>'TargetLanguage'</SPAN>,<SPAN class=string>'VHDL'</SPAN>,<SPAN class=keyword>...</SPAN>
    <SPAN class=string>'TargetDirectory'</SPAN>,fullfile(workingdir,<SPAN class=string>'hdlsrc'</SPAN>));
</PRE><PRE class=ans>### Starting VHDL code generation process for filter: filter
### Cascade stage # 1
### Starting VHDL code generation process for filter: filter_stage1
### Generating: C:\TEMP\R2008ad_169\3796\tp7b6c71a1_c23b_42c0_a950_9be0bd1dc
ddb\hdlsrc\filter_stage1.vhd
### Starting generation of filter_stage1 VHDL entity
### Starting generation of filter_stage1 VHDL architecture
### Section # 1 : Integrator
### Section # 2 : Integrator
### Section # 3 : Integrator
### Section # 4 : Integrator
### Section # 5 : Integrator
### Section # 6 : Comb
### Section # 7 : Comb
### Section # 8 : Comb
### Section # 9 : Comb
### Section # 10 : Comb
### HDL latency is 1 samples
### Successful completion of VHDL code generation process for filter: filter
_stage1

### Cascade stage # 2
### Starting VHDL code generation process for filter: filter_stage2
### Generating: C:\TEMP\R2008ad_169\3796\tp7b6c71a1_c23b_42c0_a950_9be0bd1dc
ddb\hdlsrc\filter_stage2.vhd
### Starting generation of filter_stage2 VHDL entity
### Starting generation of filter_stage2 VHDL architecture
### HDL latency is 0 samples
### Successful completion of VHDL code generation process for filter: filter
_stage2

### Cascade stage # 3
### Starting VHDL code generation process for filter: filter_stage3
### Generating: C:\TEMP\R2008ad_169\3796\tp7b6c71a1_c23b_42c0_a950_9be0bd1dc
ddb\hdlsrc\filter_stage3.vhd
### Starting generation of filter_stage3 VHDL entity
### Starting generation of filter_stage3 VHDL architecture
### HDL latency is 1 samples
### Successful completion of VHDL code generation process for filter: filter
_stage3

### Generating: C:\TEMP\R2008ad_169\3796\tp7b6c71a1_c23b_42c0_a950_9be0bd1dc
ddb\hdlsrc\filter.vhd
### Starting generation of filter VHDL entity
### Starting generation of filter VHDL architecture
### HDL latency is 2 samples
### Successful completion of VHDL code generation process for filter: filter

</PRE>
            <H3>HDL Co-simulation with ModelSim® in Simulink®<A 
name=25></A></H3>
            <P>To verify that the generated HDL code is producing the same 
            results as our Simulink® model, we'll use EDA Simulator Link™ MS to 
            co-simulate our HDL code in Simulink. We have a pre-built Simulink 
            model that includes two signal paths. One signal path produces 
            Simulink's behavioral model results of the three-stage, multirate 
            filter. The other path produces the results of simulating, with 
            ModelSim, the VHDL code we generated. </P><PRE class=code>open_system(<SPAN class=string>'ddcdemocosim.mdl'</SPAN>);
</PRE><A 
            onmouseover="window.status='Click to enlarge image.'; return true;" 
            onclick="openWindow('/products/demos/fullsize.html?src=/products/demos/shipping/filterdesign/ddcfilterchaindemo_08.png',600,288, 'scrollbars=no,resizable=yes,status=no'); return false;" 
            onmouseout="window.status='';" 
            href="http://www.mathworks.de/products/demos/fullsize.html?src=/products/demos/shipping/filterdesign/ddcfilterchaindemo_08.png"><IMG 
            height=168 hspace=5 
            src="The MathWorks Deutschland - Filter Design Toolbox - Implementing the Filter Chain of a Digital Down-Converter in HDL Demo.files/ddcfilterchaindemo_08_thumbnail.png" 
            width=350 vspace=5></A> 
            <P>For the behavioral model simulation we will generate a Simulink 
            block of the three-stage, multirate filter we designed and place 
            that block in the Simulink model where we'll co-simulate with 
            ModelSim. </P><PRE class=code><SPAN class=comment>% Generate Simulink block of cascaded filters.  Change the compensating</SPAN>
<SPAN class=comment>% filter's default rounding mode because it's not supported in Simulink.</SPAN>
set(hcfir,<SPAN class=string>'FilterInternals'</SPAN>,<SPAN class=string>'SpecifyPrecision'</SPAN>,<SPAN class=string>'RoundMode'</SPAN>,<SPAN class=string>'round'</SPAN>);
block(hcas,<SPAN class=string>'OverwriteBlock'</SPAN>,<SPAN class=string>'on'</SPAN>);
open_system(<SPAN class=string>'ddcdemocosim.mdl'</SPAN>);

<SPAN class=comment>% Start ModelSim. Uncomment the following lines of code to compile and load</SPAN>
<SPAN class=comment>% the HDL code in ModelSim.  Note that ModelSim must be installed and on</SPAN>
<SPAN class=comment>% the system path.</SPAN>
<SPAN class=comment>%</SPAN>
<SPAN class=comment>% cachepwd = pwd;</SPAN>
<SPAN class=comment>% cd(workingdir) % Go to directory where code was generated.</SPAN>
<SPAN class=comment>% vsim('tclstart',ddcdemolinkcmds,'socketsimulink',4449);</SPAN>
</PRE><PRE class=ans>Warning: The 'round' round mode is not supported by the Signal Processing
Blockset.  Converting to 'Nearest'.
Warning: The 'round' round mode is not supported by the Signal Processing
Blockset.  Converting to 'Nearest'.
Warning: The 'round' round mode is not supported by the Signal Processing
Blockset.  Converting to 'Nearest'.
Warning: The 'round' round mode is not supported by the Signal Processing
Blockset.  Converting to 'Nearest'.
</PRE>
            <P>Note that the warnings generated are due to the fact that the 
            input quantization settings are set explicitly in the filter 
            objects, but are inherited in Simulink's filter block. </P><PRE class=code><SPAN class=comment>% Run Simulink simulation and open the Scope to view results.  Uncomment</SPAN>
<SPAN class=comment>% the following lines to run the simulation.  Note that you must first</SPAN>
<SPAN class=comment>% uncomment the code above that starts ModelSim.</SPAN>
<SPAN class=comment>%</SPAN>
<SPAN class=comment>% pause(5);</SPAN>
<SPAN class=comment>% sim('ddcdemocosim');</SPAN>
<SPAN class=comment>% open_system('ddcdemocosim/Verification_Results/Time Scope');</SPAN>
<SPAN class=comment>% cd(cachepwd)</SPAN>
</PRE>
            <P>The warnings generated when running the code are due to the fact 
            that the coefficients are stored as doubles when specified in the 
            filter block, and therefore will be quantized to the word length and 
            fractional length specified in the filter object. </P>
            <P>The scope below displays the results of running the 
            simulation.</P>
            <P><IMG hspace=5 
            src="The MathWorks Deutschland - Filter Design Toolbox - Implementing the Filter Chain of a Digital Down-Converter in HDL Demo.files/ddcdemoscope.png" 
            vspace=5> </P>
            <H3>Verifying Results<A name=30></A></H3>
            <P>The trace on the top is the excitation chirp signal. The next 
            signal labeled "ref" is the reference signal produced by the 
            Simulink behavioral model of the three-stage multirate filter. The 
            bottom trace labeled "cosim" on the scope is of the ModelSim 
            simulation results of the generated HDL code of the three-stage 
            multirate filter. The last trace shows the error between Simulink's 
            behavioral model results and ModelSim's simulation of the HDL code. 
            </P>
            <H3>Summary<A name=31></A></H3>
            <P>We used several MathWorks products to design and analyze a 
            three-stage, multirate, fixed-point filter chain of a DDC for a GSM 
            application. Then we generated HDL code to implement the filter and 
            verified the generated code by comparing Simulink's behavioral model 
            with HDL code simulated in ModelSim via EDA Simulator Link™ MS. 
            </P></DIV></TD>
          <TD vAlign=top width=160>
            <TABLE id=rightcol cellSpacing=0 cellPadding=0 width=160 border=0>
              <TBODY>
              <TR>
                <TD class=callme>
                  <TABLE id=trybuy cellSpacing=0 cellPadding=0 width="100%" 
                  border=0>
                    <TBODY>
                    <TR>
                      <TD style="PADDING-TOP: 2px" vAlign=top width=19><A 
                        href="http://www.mathworks.de/company/aboutus/contact_us/contact_sales.html"><IMG 
                        height=14 alt="" 
                        src="The MathWorks Deutschland - Filter Design Toolbox - Implementing the Filter Chain of a Digital Down-Converter in HDL Demo.files/call.gif" 
                        width=15></A> </TD>
                      <TD style="PADDING-RIGHT: 9px" vAlign=top><A 
                        href="http://www.mathworks.de/company/aboutus/contact_us/contact_sales.html">Vertrieb 
                        kontaktieren</A></TD></TR>
                    <TR>
                      <TD style="PADDING-TOP: 2px" vAlign=top width=19><A 
                        href="javascript:openWindow('/webforms/email_this_page.html?language=de&amp;host=www.mathworks.de&amp;document=www.mathworks.de/applications/dsp_comm/demos.html?file=/products/demos/shipping/filterdesign/ddcfilterchaindemo.html');"><IMG 
                        height=14 alt="" 
                        src="The MathWorks Deutschland - Filter Design Toolbox - Implementing the Filter Chain of a Digital Down-Converter in HDL Demo.files/email.gif" 
                        width=15></A> </TD>
                      <TD style="PADDING-RIGHT: 9px" vAlign=top><A 
                        href="javascript:openWindow('/webforms/email_this_page.html?language=de&amp;host=www.mathworks.de&amp;document=www.mathworks.de/applications/dsp_comm/demos.html?file=/products/demos/shipping/filterdesign/ddcfilterchaindemo.html');">Seite 
                        per E-Mail versenden</A></TD></TR>
                    <TR>
                      <TD style="PADDING-TOP: 2px" vAlign=top width=19><A 
                        href="javascript:printWindow()"><IMG height=14 alt="" 
                        src="The MathWorks Deutschland - Filter Design Toolbox - Implementing the Filter Chain of a Digital Down-Converter in HDL Demo.files/print.gif" 
                        width=15></A> </TD>
                      <TD style="PADDING-RIGHT: 9px" vAlign=top><A 
                        href="javascript:printWindow()">Seite 
                    drucken</A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<TABLE id=globalfooter cellSpacing=0 cellPadding=3 width=935 summary=layout 
border=0>
  <TBODY>
  <TR>
    <TD align=middle>&nbsp;© 1994-2008 The MathWorks, Inc. 
      &nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;<A 
      href="http://www.mathworks.de/help.html">Site-Hilfe</A>&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;<A 
      href="http://www.mathworks.de/company/aboutus/policies_statements/patents.html">Patente</A>&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;<A 
      href="http://www.mathworks.de/company/aboutus/policies_statements/trademarks.html">Handelsmarken</A>&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;<A 
      href="http://www.mathworks.de/company/aboutus/policies_statements/">Datenschutz</A>&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;<A 
      href="http://www.mathworks.de/company/aboutus/policies_statements/piracy.html">Preventing 
      Piracy</A>&nbsp;&nbsp;&nbsp;-&nbsp;&nbsp;&nbsp;<A 
      href="http://www.mathworks.de/company/rss/index.html">RSS</A> 
  </TD></TR></TBODY></TABLE><!-- This script will live in the footer of the site and will be executed only when on the homepage to bring up the survey --><!-- Begin code to put in footer /includes_content/lib/globalfooter/global_footer_tpl.html --><!-- End code to put in footer /includes_content/lib/globalfooter/global_footer_tpl.html -->
<SCRIPT language=JavaScript1.3 
src="The MathWorks Deutschland - Filter Design Toolbox - Implementing the Filter Chain of a Digital Down-Converter in HDL Demo.files/footer.js" 
type=text/javascript></SCRIPT>
<!-- SiteCatalyst code version: H.4. -->
<SCRIPT language=JavaScript 
src="The MathWorks Deutschland - Filter Design Toolbox - Implementing the Filter Chain of a Digital Down-Converter in HDL Demo.files/s_code.js" 
type=text/javascript></SCRIPT>

<SCRIPT language=JavaScript type=text/javascript><!--s.pageName=document.title/************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/var s_code=s.t();if(s_code)document.write(s_code)//--></SCRIPT>

<SCRIPT language=JavaScript type=text/javascript><!--if(navigator.appVersion.indexOf('MSIE')>=0)document.write(unescape('%3C')+'\!-'+'-')//--></SCRIPT>
<!--/DO NOT REMOVE/--><!-- End SiteCatalyst code version: H.4. --></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -