OK guys thank you.<div>I got it. I didn't use my output signal in vita_tx_chain. After including it in the behavior the compiler includes my module in the design. <br><br><div class="gmail_quote">2012/9/27 Tim Schuschies <span dir="ltr"><<a href="mailto:tim.schuschies@googlemail.com" target="_blank">tim.schuschies@googlemail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Thanks Ian and Josh,<div>I wrote a simple wrapper, but it doesn't help. I also added another output signal and connected it with the <font face="'courier new', monospace">vita_tx_chain </font><font face="arial, helvetica, sans-serif">(I added an input). So I definitively have a connected output and the input are connected too. My module stays unconnected. I will add the whole source code in the following. It would be great if someone could take a look at it. I don't see an error in the code, that could cause my problem. I don't understand the compiler... :/</font></div>

<div><font face="arial, helvetica, sans-serif"><br></font></div><div><font face="arial, helvetica, sans-serif">My module:</font></div><div><div><font face="'courier new', monospace">entity carrier_sense is</font></div>

<div><span style="font-family:'courier new',monospace"> Generic( THRESHOLD : integer := 32768);</span></div><div><font face="'courier new', monospace"> Port ( sample_in : in  STD_LOGIC_VECTOR (31 downto 0);</font></div>

<div><font face="'courier new', monospace">        clk : in  STD_LOGIC;</font></div><div><font face="'courier new', monospace">        strobe : in STD_LOGIC;</font></div><div><font face="'courier new', monospace">        rst : in  STD_LOGIC;</font></div>

<div><font face="'courier new', monospace">        busy : out  STD_LOGIC;</font></div><div><font face="'courier new', monospace"><span style="white-space:pre-wrap">    </span>--Register</font></div>
<div><font face="'courier new', monospace"><span style="white-space:pre-wrap">    </span>settings : in STD_LOGIC_VECTOR(31 downto 0);</font></div><div><font face="'courier new', monospace"><span style="white-space:pre-wrap">  </span>status_o : out STD_LOGIC_VECTOR(31 downto 0);</font></div>

<div><font face="'courier new', monospace"><span style="white-space:pre-wrap">    </span>rssi_o : out STD_LOGIC_VECTOR(31 downto 0));</font></div><div><font face="'courier new', monospace"><span style="white-space:pre-wrap">                  </span>  </font></div>

<div><font face="'courier new', monospace">end carrier_sense;</font></div><div><font face="'courier new', monospace"><br></font></div><div><font face="'courier new', monospace">architecture CarrierSense of carrier_sense is</font></div>

<div><font face="'courier new', monospace"><span style="white-space:pre-wrap">    </span>signal rssi : std_logic_vector(15 downto 0);</font></div><div><font face="'courier new', monospace"><span style="white-space:pre-wrap">  </span>signal avg : std_logic_vector(15 downto 0);</font></div>

<div><font face="'courier new', monospace"><span style="white-space:pre-wrap">    </span>signal status : std_logic_vector(15 downto 0);</font></div><div><font face="'courier new', monospace">begin</font></div>

<div><font face="'courier new', monospace"><span style="white-space:pre-wrap">    </span>busy <= '1';</font></div><div><font face="'courier new', monospace"><span style="white-space:pre-wrap">       </span>rssi <= complex_abs(sample_in(31 downto 16),sample_in(15 downto 0));</font></div>

<div><span style="white-space:pre-wrap"><font face="'courier new', monospace">    </font></span></div><div><font face="'courier new', monospace"><span style="white-space:pre-wrap">      </span>average : process(strobe,rst)</font></div>

<div><font face="'courier new', monospace"><span style="white-space:pre-wrap">            </span>variable count,value : integer := 0;</font></div><div><font face="'courier new', monospace"><span style="white-space:pre-wrap">  </span>begin</font></div>

<div><font face="'courier new', monospace"><span style="white-space:pre-wrap">    </span> if rst = '1' then</font></div><div><font face="'courier new', monospace"><span style="white-space:pre-wrap">            </span>count := 0;</font></div>

<div><font face="'courier new', monospace"><span style="white-space:pre-wrap">            </span>value := 0;</font></div><div><font face="'courier new', monospace"><span style="white-space:pre-wrap">   </span> elsif rising_edge(strobe) then </font></div>

<div><font face="'courier new', monospace"><span style="white-space:pre-wrap">            </span>if count < 16 then</font></div><div><font face="'courier new', monospace"><span style="white-space:pre-wrap">                 </span>count := count + 1;</font></div>

<div><font face="'courier new', monospace"><span style="white-space:pre-wrap">                    </span>value := value + to_integer(unsigned(rssi));</font></div><div><font face="'courier new', monospace"><span style="white-space:pre-wrap">          </span>else</font></div>

<div><font face="'courier new', monospace"><span style="white-space:pre-wrap">                    </span>value := value / 16;</font></div><div><font face="'courier new', monospace"><span style="white-space:pre-wrap">                  </span>avg <= std_logic_vector(to_unsigned(value,16));</font></div>

<div><font face="'courier new', monospace"><span style="white-space:pre-wrap">                    </span>if to_integer(unsigned(avg)) < THRESHOLD then</font></div><div><font face="'courier new', monospace"><span style="white-space:pre-wrap">                              </span>status(0) <= '1';</font></div>

<div><font face="'courier new', monospace"><span style="white-space:pre-wrap">                    </span>else </font></div><div><font face="'courier new', monospace"><span style="white-space:pre-wrap">                         </span>status(0) <= '0';</font></div>

<div><font face="'courier new', monospace"><span style="white-space:pre-wrap">                    </span>end if;</font></div><div><font face="'courier new', monospace"><span style="white-space:pre-wrap">                       </span>count := 0;</font></div>

<div><font face="'courier new', monospace"><span style="white-space:pre-wrap">            </span>end if;</font></div><div><font face="'courier new', monospace"><span style="white-space:pre-wrap">       </span> end if;</font></div>

<div><font face="'courier new', monospace"><span style="white-space:pre-wrap">    </span>end process;</font></div><div><span style="white-space:pre-wrap"><font face="'courier new', monospace">  </font></span></div>

<div><font face="'courier new', monospace"><span style="white-space:pre-wrap">    </span>busy <= status(0);</font></div><div><font face="'courier new', monospace"><span style="white-space:pre-wrap"> </span>status_o(15 downto 0) <= status;</font></div>

<div><font face="'courier new', monospace"><span style="white-space:pre-wrap">    </span>rssi_o(15 downto 0) <= rssi;</font></div><div><font face="'courier new', monospace"><br></font></div>
<div><font face="'courier new', monospace">end CarrierSense;</font></div><div><font face="'courier new', monospace"><br></font></div><div><font face="arial, helvetica, sans-serif">The wrapper:</font></div>

<div><div><font face="'courier new', monospace">entity carrier_wb_top is</font></div><div><font face="'courier new', monospace">    Port ( sample_in : in  STD_LOGIC_VECTOR (31 downto 0);</font></div><div>
<font face="'courier new', monospace">           clk : in  STD_LOGIC;</font></div>
<div><font face="'courier new', monospace">           rst : in  STD_LOGIC;</font></div><div><font face="'courier new', monospace">           strobe : in  STD_LOGIC;</font></div><div><font face="'courier new', monospace">           busy : out  STD_LOGIC;</font></div>

<div><font face="'courier new', monospace">           settings : in  STD_LOGIC_VECTOR (31 downto 0);</font></div><div><font face="'courier new', monospace">           rssi_o : out  STD_LOGIC_VECTOR (31 downto 0);</font></div>

<div><font face="'courier new', monospace">           status_o : out  STD_LOGIC_VECTOR (31 downto 0));</font></div><div><font face="'courier new', monospace">end carrier_wb_top;</font></div><div><font face="'courier new', monospace"><br>

</font></div><div><font face="'courier new', monospace">architecture cs of carrier_wb_top is</font></div><div><font face="'courier new', monospace"><br></font></div><div><font face="'courier new', monospace">component carrier_sense is</font></div>

<div><font face="'courier new', monospace"><span style="white-space:pre-wrap">    </span>port(</font></div><div><font face="'courier new', monospace"><span style="white-space:pre-wrap">         </span>sample_in : in std_logic_vector(31 downto 0);</font></div>

<div><font face="'courier new', monospace"><span style="white-space:pre-wrap">            </span>clk : in std_logic;</font></div><div><font face="'courier new', monospace"><span style="white-space:pre-wrap">           </span>strobe : in std_logic;</font></div>

<div><font face="'courier new', monospace"><span style="white-space:pre-wrap">            </span>rst : in std_logic;</font></div><div><font face="'courier new', monospace"><span style="white-space:pre-wrap">           </span>busy : out std_logic;</font></div>

<div><font face="'courier new', monospace"><span style="white-space:pre-wrap">            </span>--register</font></div><div><font face="'courier new', monospace"><span style="white-space:pre-wrap">            </span>settings : in std_logic_vector(31 downto 0);</font></div>

<div><font face="'courier new', monospace"><span style="white-space:pre-wrap">            </span>status_o : out std_logic_vector(31 downto 0);</font></div><div><font face="'courier new', monospace"><span style="white-space:pre-wrap">         </span>rssi_o : out std_logic_vector(31 downto 0));</font></div>

<div><font face="'courier new', monospace">end component;</font></div><div><font face="'courier new', monospace"><br></font></div><div><font face="'courier new', monospace">begin</font></div><div>
<font face="'courier new', monospace"><br>
</font></div><div><font face="'courier new', monospace">carrier_sense0 : carrier_sense port map(</font></div><div><font face="'courier new', monospace"><span style="white-space:pre-wrap"> </span>sample_in => sample_in,</font></div>

<div><font face="'courier new', monospace"><span style="white-space:pre-wrap">    </span>clk => clk,</font></div><div><font face="'courier new', monospace"><span style="white-space:pre-wrap">        </span>strobe => strobe,</font></div>

<div><font face="'courier new', monospace">   rst => rst,</font></div><div><font face="'courier new', monospace">   busy => busy,</font></div><div><font face="'courier new', monospace"><span style="white-space:pre-wrap">    </span>--Register</font></div>

<div><font face="'courier new', monospace"><span style="white-space:pre-wrap">    </span>settings => settings,</font></div><div><font face="'courier new', monospace"><span style="white-space:pre-wrap">      </span>status_o => status_o,</font></div>

<div><font face="'courier new', monospace"><span style="white-space:pre-wrap">    </span>rssi_o => rssi_o</font></div><div><font face="'courier new', monospace">);</font></div><div><font face="'courier new', monospace"><br>

</font></div><div><font face="'courier new', monospace">end cs;</font></div></div><div><br></div><div>And the port map of u2_core:</div><div><div><font face="'courier new', monospace">wire[31:0] cs_settings,cs_rssi,cs_status;</font></div>

<div><font face="'courier new', monospace">wire cs_busy;</font></div><div><span style="white-space:pre-wrap"><font face="'courier new', monospace">     </font></span></div><div><font face="'courier new', monospace">carrier_wb_top carrier_sense0</font></div>

<div><font face="'courier new', monospace"> ( .sample_in(sample_rx0),.clk(dsp_clk),.rst(dsp_rst),.strobe(strobe_rx0),.busy(cs_busy),</font></div><div><font face="'courier new', monospace">   .settings(cs_settings),.rssi_o(cs_rssi),.status_o(cs_status));</font></div>

</div><div><br></div><div>Thank you for your time.</div><span class="HOEnZb"><font color="#888888"><div>Tim</div></font></span><div><div class="h5"><br><div class="gmail_quote">2012/9/26 Ian Buckley <span dir="ltr"><<a href="mailto:ianb@ionconcepts.com" target="_blank">ianb@ionconcepts.com</a>></span><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div>Tim,<div>As an additional note…clearly the setting_reg's are not VHDL since they are instantiations of existing Verilog code…they are pruned because they have no connected outputs, having connected inputs will not stop pruning. In the case of <span style="font-family:'courier new',monospace">sr_cs_rssi_reg </span>and<span style="font-family:'courier new',monospace"> </span><span style="font-family:'courier new',monospace">sr_cs_settings_reg </span>this will always occur even after you solve the pruning of the carrier_sense module.<div>

In addition, a different but related issue you haven't noticed yet…setting reg's are Write-Only, you can not use them to read values as part of the memory map…to do this you have two choices, the wb_readback_mux or implementing a full wishbone interface on your carrier_sense module.</div>

<div><br></div><div>-Ian</div></div><div><br></div></div><div><div><div>On Sep 26, 2012, at 10:50 AM, Josh Blum <<a href="mailto:josh@ettus.com" target="_blank">josh@ettus.com</a>> wrote:</div><br></div><div>
<div><blockquote type="cite"><br><blockquote type="cite">I don't understand why the compiler says the carrier_sense module would be<br>unconnected. That the registers are not connected is clear, because they<br>
are connected only to my module, which is removed. I didn't change anything<br>in the u2_core after I compiled the first time (when it worked). I only<br>changed the behavior description inside my carrier sense module. Undoing<br>

the changes don't help. The module stays unconnected and I don't know why.<br><br>Can anyone help me ?<br>I implemented the carrier_sense module with VHDL, because I'm a much more<br>familiar with it. I don't think that this could be a problem, could it?<br>

<br></blockquote><br>I would guess its just a simple error in the code. If it helps though,<br>we use the ZPU core which is actually vhdl. I had to make this wrapper<br>block which makes sure to use std_logic only for the IOs:<br>

<a href="http://code.ettus.com/redmine/ettus/projects/uhd/repository/revisions/master/entry/fpga/usrp2/opencores/zpu/zpu_wb_top.vhd" target="_blank">http://code.ettus.com/redmine/ettus/projects/uhd/repository/revisions/master/entry/fpga/usrp2/opencores/zpu/zpu_wb_top.vhd</a><br>

<br>-josh<br><br>_______________________________________________<br>USRP-users mailing list<br><a href="mailto:USRP-users@lists.ettus.com" target="_blank">USRP-users@lists.ettus.com</a><br><a href="http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com" target="_blank">http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com</a><br>

</blockquote></div></div></div><br></div></blockquote></div><br></div></div></div>
</blockquote></div><br></div>