📄 mdtxdsgen_htmldatasheet.xsl
字号:
</xsl:call-template> </xsl:variable> <TR></TR> <TD COLSPAN="1" width="5%" align="left" bgcolor="{$glb_bg_col_}"> <SPAN style="color:{$DS_COL_BLACK}; font: bold 14px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@INDEX"/></SPAN><SPAN style="color:{$DS_COL_BLACK}; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"><xsl:value-of select="@GROUP"/></SPAN> </TD> <TD COLSPAN="2" width="30%" align="left" bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@NAME"/></SPAN></TD> <TD COLSPAN="1" width="5%" align="middle" bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@DIR"/></SPAN></TD> <xsl:if test="@MSB and @LSB"> <TD COLSPAN="1" width="5%" align="middle" bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@LSB"/>:<xsl:value-of select="@MSB"/></SPAN></TD> </xsl:if> <xsl:if test="not(@MSB and @LSB)"> <TD COLSPAN="1" width="5%" align="middle" bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">1</SPAN></TD> </xsl:if> <TD COLSPAN="2" width="30%" align="left" bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@SIGNAME"/></SPAN></TD> <TD COLSPAN="2" width="25%" align="left" bgcolor="{$glb_bg_col_}"> <xsl:if test="@SIGIS='CLK'"><SPAN style="color:{$DS_COL_ATTR_CLK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> CLK </SPAN></xsl:if> <xsl:if test="@SIGIS='RST'"><SPAN style="color:{$DS_COL_ATTR_RST}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> RESET </SPAN></xsl:if> <xsl:if test="@SIGIS='INTERRUPT'"><SPAN style="color:{$DS_COL_ATTR_INT}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> INTR </SPAN></xsl:if> <xsl:if test="@IOB_STATE='BUF'"><SPAN style="color:{$DS_COL_ATTR_BUF}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> BUF </SPAN></xsl:if> <xsl:if test="@IOB_STATE='REG'"><SPAN style="color:{$DS_COL_ATTR_BUF}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> REG </SPAN></xsl:if> </TD> </xsl:for-each> </TABLE> </TD> </xsl:if> <xsl:if test="$gpin_CNT_ > 16"> <TR></TR> <TD COLSPAN="3" WIDTH="49%"> <TABLE BGCOLOR="{$DS_COL_BLACK}" WIDTH="100%" COLS="9" cellspacing="1" cellpadding="0" border="0"> <TD COLSPAN="1" width="5" align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">#</SPAN></TD> <TD COLSPAN="2" width="30%" align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">NAME</SPAN></TD> <TD COLSPAN="1" width="5%" align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">DIR</SPAN></TD> <TD COLSPAN="1" width="5%" align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">[LSB:MSB]</SPAN></TD> <TD COLSPAN="2" width="30%" align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">SIG</SPAN></TD> <TD COLSPAN="2" width="25%" align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">ATTRIBUTES</SPAN></TD> <xsl:for-each select="EXTERNALPORTS/PORT"> <xsl:sort data-type="number" select="@INDEX" order = "ascending"/> <xsl:if test="position() <= $num_left_"> <xsl:variable name="glb_bg_col_"> <xsl:call-template name="Group2Color"> <xsl:with-param name="group" select="@GROUP"/> </xsl:call-template> </xsl:variable> <!-- <xsl:message>NAME: <xsl:value-of select="@NAME"/></xsl:message> <xsl:message>SIGIS: <xsl:value-of select="@SIGIS"/></xsl:message> --> <TR></TR> <TD COLSPAN="1" width="5%" align="left" bgcolor="{$glb_bg_col_}"> <SPAN style="color:{$DS_COL_BLACK}; font: bold 14px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@INDEX"/></SPAN><SPAN style="color:{$DS_COL_BLACK}; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"><xsl:value-of select="@GROUP"/></SPAN> </TD> <TD COLSPAN="2" width="30%" align="left" bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@NAME"/></SPAN></TD> <TD COLSPAN="1" width="5%" align="middle" bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@DIR"/></SPAN></TD> <xsl:if test="@MSB and @LSB"> <TD COLSPAN="1" width="5%" align="middle" bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@LSB"/>:<xsl:value-of select="@MSB"/></SPAN></TD> </xsl:if> <xsl:if test="not(@MSB and @LSB)"> <TD COLSPAN="1" width="5%" align="middle" bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">1</SPAN></TD> </xsl:if> <TD COLSPAN="2" width="30%" align="left" bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@SIGNAME"/></SPAN></TD> <TD COLSPAN="2" width="25%" align="left" bgcolor="{$glb_bg_col_}"> <xsl:if test="@SIGIS='CLK'"><SPAN style="color:{$DS_COL_GREEN}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> CLK </SPAN></xsl:if> <xsl:if test="@SIGIS='RST'"><SPAN style="color:{$DS_COL_ATTR_RST}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> RESET </SPAN></xsl:if> <xsl:if test="@SIGIS='INTERRUPT'"><SPAN style="color:{$DS_COL_ATTR_INT}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> INTR </SPAN></xsl:if> <xsl:if test="@IOB_STATE='BUF'"><SPAN style="color:{$DS_COL_ATTR_BUF}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> BUF </SPAN></xsl:if> <xsl:if test="@IOB_STATE='REG'"><SPAN style="color:{$DS_COL_ATTR_BUF}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> REG </SPAN></xsl:if> </TD> </xsl:if> </xsl:for-each> </TABLE> </TD> <TD COLSPAN="1" WIDTH="2%" BGCOLOR="{$DS_COL_GREY}"> <SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> </SPAN> </TD> <TD COLSPAN="3" WIDTH="49%"> <TABLE BGCOLOR="{$DS_COL_BLACK}" WIDTH="100%" COLS="9" cellspacing="1" cellpadding="0" border="0"> <TD COLSPAN="1" width="5%" align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">#</SPAN></TD> <TD COLSPAN="2" width="30%" align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">NAME</SPAN></TD> <TD COLSPAN="1" width="5%" align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">DIR</SPAN></TD> <TD COLSPAN="1" width="5%" align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">[LSB:MSB]</SPAN></TD> <TD COLSPAN="2" width="30%" align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">SIG</SPAN></TD> <TD COLSPAN="2" width="25%" align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">ATTRIBUTES</SPAN></TD> <xsl:for-each select="EXTERNALPORTS/PORT"> <xsl:sort data-type="number" select="@INDEX" order = "ascending"/> <xsl:if test="position() > $num_left_"><!-- <xsl:variable name="glb_bg_col_"> <xsl:choose> <xsl:when test="(@GROUP mod 2) = 1"> <xsl:value-of select="$DS_COL_ASH"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$DS_COL_WHITE"/> </xsl:otherwise> </xsl:choose> </xsl:variable> --> <xsl:variable name="glb_bg_col_"> <xsl:call-template name="Group2Color"> <xsl:with-param name="group" select="@GROUP"/> </xsl:call-template> </xsl:variable> <TR></TR> <TD COLSPAN="1" width="5%" align="left" bgcolor="{$glb_bg_col_}"> <SPAN style="color:{$DS_COL_BLACK}; font: bold 14px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@INDEX"/></SPAN><SPAN style="color:{$DS_COL_BLACK}; vertical-align: super; font: bold 10px Arial,Helvetica,sans-serif"><xsl:value-of select="@GROUP"/></SPAN> </TD> <TD COLSPAN="2" width="30%" align="left" bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@NAME"/></SPAN></TD> <TD COLSPAN="1" width="5%" align="middle" bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@DIR"/></SPAN></TD> <xsl:if test="@MSB and @LSB"> <TD COLSPAN="1" width="5%" align="middle" bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@LSB"/>:<xsl:value-of select="@MSB"/></SPAN></TD> </xsl:if> <xsl:if test="not(@MSB and @LSB)"> <TD COLSPAN="1" width="5%" align="middle" bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">1</SPAN></TD> </xsl:if> <TD COLSPAN="2" width="30%" align="left" bgcolor="{$glb_bg_col_}"><SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="@SIGNAME"/></SPAN></TD> <TD COLSPAN="2" width="25%" align="left" bgcolor="{$glb_bg_col_}"> <xsl:if test="@SIGIS='CLK'"><SPAN style="color:{$DS_COL_GREEN}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> CLK </SPAN></xsl:if> <xsl:if test="@SIGIS='RST'"><SPAN style="color:{$DS_COL_ATTR_RST}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> RESET </SPAN></xsl:if> <xsl:if test="@SIGIS='INTERRUPT'"><SPAN style="color:{$DS_COL_ATTR_INT}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> INTR </SPAN></xsl:if> <xsl:if test="@IOB_STATE='BUF'"><SPAN style="color:{$DS_COL_ATTR_BUF}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> BUF </SPAN></xsl:if> <xsl:if test="@IOB_STATE='REG'"><SPAN style="color:{$DS_COL_ATTR_BUF}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> REG </SPAN></xsl:if> </TD> </xsl:if> </xsl:for-each> <xsl:if test="$left_extra_ > 0"> <TR></TR> <TD COLSPAN="9" WIDTH="100%" align="left" bgcolor="{$DS_COL_WHITE}"><SPAN style="color:{$DS_COL_WHITE}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> </SPAN></TD> </xsl:if> </TABLE> </TD> </xsl:if> </TABLE> </xsl:template><xsl:template name="Group2Color"> <xsl:param name="group" select="'A'"/> <xsl:variable name="letter"> <xsl:value-of select="substring($group,(string-length($group) -string-length($group)) + 1)"/> </xsl:variable> <xsl:choose> <xsl:when test="$group = 'GLB'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when> <xsl:when test="$letter = 'A'"><xsl:value-of select="$DS_COL_ASH"/></xsl:when> <xsl:when test="$letter = 'C'"><xsl:value-of select="$DS_COL_ASH"/></xsl:when> <xsl:when test="$letter = 'E'"><xsl:value-of select="$DS_COL_ASH"/></xsl:when> <xsl:when test="$letter = 'G'"><xsl:value-of select="$DS_COL_ASH"/></xsl:when> <xsl:when test="$letter = 'I'"><xsl:value-of select="$DS_COL_ASH"/></xsl:when> <xsl:when test="$letter = 'K'"><xsl:value-of select="$DS_COL_ASH"/></xsl:when> <xsl:when test="$letter = 'M'"><xsl:value-of select="$DS_COL_ASH"/></xsl:when> <xsl:when test="$letter = 'O'"><xsl:value-of select="$DS_COL_ASH"/></xsl:when> <xsl:when test="$letter = 'Q'"><xsl:value-of select="$DS_COL_ASH"/></xsl:when> <xsl:when test="$letter = 'S'"><xsl:value-of select="$DS_COL_ASH"/></xsl:when> <xsl:when test="$letter = 'U'"><xsl:value-of select="$DS_COL_ASH"/></xsl:when> <xsl:when test="$letter = 'W'"><xsl:value-of select="$DS_COL_ASH"/></xsl:when> <xsl:when test="$letter = 'Y'"><xsl:value-of select="$DS_COL_ASH"/></xsl:when> <xsl:when test="$letter = 'B'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when> <xsl:when test="$letter = 'D'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when> <xsl:when test="$letter = 'F'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when> <xsl:when test="$letter = 'H'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when> <xsl:when test="$letter = 'J'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when> <xsl:when test="$letter = 'L'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when> <xsl:when test="$letter = 'N'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when> <xsl:when test="$letter = 'P'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when> <xsl:when test="$letter = 'R'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when> <xsl:when test="$letter = 'T'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when> <xsl:when test="$letter = 'V'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when> <xsl:when test="$letter = 'X'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when> <xsl:when test="$letter = 'Z'"><xsl:value-of select="$DS_COL_WHITE"/></xsl:when> <xsl:otherwise> <xsl:value-of select="$DS_COL_WHITE"/> </xsl:otherwise> </xsl:choose></xsl:template><xsl:template name="Layout_TimingInfo"> <xsl:variable name="mtiming_CNT_" select="count(MODULES/MODULE/TIMING)"/> <TABLE BGCOLOR="{$DS_COL_BLACK}" WIDTH="{ceiling($DS_WIDTH div 2)}" COLS="5" cellspacing="1" cellpadding="1" border="1"> <TD COLSPAN="5" width="100%" align="middle" bgcolor="{$DS_COL_XPRP}"><SPAN style="color:{$DS_COL_WHITE}; font: bold 9px Verdana,Arial,Helvetica,sans-serif">Post Synthesis Clock Limits</SPAN></TD> <TR></TR> <xsl:if test="$mtiming_CNT_ < 1"> <TD COLSPAN="5" width="100%" align="middle" bgcolor="{$DS_COL_WHITE}"> <SPAN style="color:{$DS_COL_INFO}; font: bold 9px Verdana,Arial,Helvetica,sans-serif"> No clocks could be identified in the design. Run platgen to generate synthesis information. </SPAN> </TD> </xsl:if> <xsl:if test="$mtiming_CNT_ > 0"> <TD COLSPAN="5" width="100%" align="left" bgcolor="{$DS_COL_WHITE}"> <SPAN style="color:{$DS_COL_INFO}; font: bold 9px Verdana,Arial,Helvetica,sans-serif"> These are the post synthesis clock frequencies. The critical frequencies are marked with </SPAN> <SPAN style="color:{$DS_COL_GREEN}; font: bold 9px Verdana,Arial,Helvetica,sans-serif"> green. </SPAN> <BR></BR> <SPAN style="color:{$DS_COL_RED}; font: bold 9px Verdana,Arial,Helvetica,sans-serif"> The values reported here are post synthesis estimates calculated for each individual module. These values will change after place and route is performed on the entire system. </SPAN> </TD> <TR></TR> <TD COLSPAN="2" width="40%" align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">MODULE</SPAN></TD> <TD COLSPAN="2" width="40%" align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">CLK Port</SPAN></TD> <TD COLSPAN="1" width="20%" align="left" bgcolor="{$DS_COL_GREY}"><SPAN style="color:{$DS_COL_XPRP}; font: bold 10px Verdana,Arial,Helvetica,sans-serif">MAX FREQ</SPAN></TD> <xsl:for-each select="MODULES/MODULE/TIMING"> <xsl:sort data-type="number" select="@MAXFREQ" order="ascending"/> <xsl:variable name="maxFreq_" select="@MAXFREQ"/> <xsl:variable name="freqUnit_" select="@FREQUNITS"/> <xsl:variable name="freqCol_"> <xsl:if test="position() = 1"> <xsl:value-of select="$DS_COL_GREEN"/> </xsl:if> <xsl:if test="not(position() = 1)"> <xsl:value-of select="$DS_COL_BLACK"/> </xsl:if> </xsl:variable> <xsl:for-each select="TIMECLK"> <TR></TR> <TD COLSPAN="2" width="40%" align="left" bgcolor="{$DS_COL_WHITE}"> <A HREF="#_{../../@INSTANCE}" style="text-decoration:none"> <SPAN style="color:{$DS_COL_XPRP}; font: italic 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="../../@INSTANCE"/></SPAN> </A> </TD> <TD COLSPAN="2" width="40%" align="left" bgcolor="{$DS_COL_WHITE}"> <SPAN style="color:{$DS_COL_BLACK}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"> <xsl:value-of select="@SIGNAME"/> </SPAN> </TD> <TD COLSPAN="1" width="20%" align="left" bgcolor="{$DS_COL_WHITE}"> <SPAN style="color:{$freqCol_}; font: normal 12px Verdana,Arial,Helvetica,sans-serif"> <xsl:value-of select="$maxFreq_"/><xsl:value-of select="$freqUnit_"/> </SPAN> </TD> </xsl:for-each> </xsl:for-each> </xsl:if> </TABLE> </xsl:template><!-- ============================== END GLOBAL PINOUT ==================================== --><xsl:template name="Layout_NavigateHeader"> <xsl:param name="header_name" select="HEADER"/> <BR></BR> <BR></BR> <BR></BR> <TABLE BGCOLOR="{$DS_COL_XPRP}" WIDTH="{$DS_WIDTH}" COLS="3" cellspacing="0" cellpadding="0" border="0"> <TH COLSPAN="1" width="90%" align="left"> <SPAN style="color:{$DS_COL_WHITE}; font: bold 12px Verdana,Arial,Helvetica,sans-serif"><xsl:value-of select="$header_name"/></SPAN></TH> <xsl:if test="$DS_TYPE='NOFRAMES'"> <TH COLSPAN="1" width="10%" align="middle"><A HREF="#_TOC" style="text-decoration:none"><SPAN style="color:{$DS_COL_LGRY}; font: bold 14px Verdana Arial,Helvetica,sans-serif">TOC</SPAN></A></TH> </xsl:if> <xsl:if test="$DS_TYPE='FRAMES'"> <TH COLSPAN="1" width="10%" align="middle"><A HREF="#_Overview" style="text-decoration:none"><SPAN style="color:{$DS_COL_LGRY}; font: bold 14px Verdana Arial,Helvetica,sans-serif">TOP</SPAN></A></TH> </xsl:if> </TABLE></xsl:template></xsl:stylesheet>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -