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

📄 eqns.js

📁 用VHDL编写的串口异步通信的例子
💻 JS
📖 第 1 页 / 共 2 页
字号:
var eqnType = 0;var spcStr = "&nbsp;";var nlStr = "<br>";var tabStr = spcStr + spcStr + spcStr + spcStr + spcStr; var nlTabStr = nlStr + tabStr;var rClrS = "<font color='blue'>";var rClrE = "</font>";var cClrS = "<font color='green'>";var cClrE = "</font>";var abelOper = new Array();abelOper["GND"] = new Array("Gnd");abelOper["VCC"] = new Array("Vcc");abelOper["NOT"] = new Array(rClrS + "!" + rClrE);abelOper["AND"] = new Array(rClrS + "&" + rClrE);abelOper["OR"]  = new Array(rClrS + "#" + rClrE);abelOper["XOR"] = new Array(rClrS + "$" + rClrE);abelOper["EQUAL_COLON"] = new Array(":= ");abelOper["EQUAL"] = new Array("= ");abelOper["ASSIGN"] = new Array("");abelOper["OPEN_NEGATE"] = new Array("(");abelOper["CLOSE_NEGATE"] = new Array(")");abelOper["OPEN_PTERM"] = new Array("");abelOper["CLOSE_PTERM"] = new Array("");abelOper["OPEN_BRACE"] = new Array("<");abelOper["CLOSE_BRACE"] = new Array(">");abelOper["INVALID_OPEN_BRACE"] = new Array("<");abelOper["INVALID_CLOSE_BRACE"] = new Array(">");abelOper["ENDLN"] = new Array(";");abelOper["COMMENT"] = new Array("//");abelOper["IMPORT"] = new Array(";Imported pterms ");abelOper["GCK_COM"] = new Array("GCK");abelOper["GTS_COM"] = new Array("GTS");abelOper["GSR_COM"] = new Array("GSR");abelOper["START_EQN"] = new Array("");abelOper["END_EQN"] = new Array("");abelOper["_I"] = new Array(".I");abelOper["_T"] = new Array(".T");abelOper["_D"] = new Array(".D");abelOper["_C"] = new Array(".CLK");abelOper["_DEC"] = new Array(".DEC");abelOper["_LH"] = new Array(".LH");abelOper["_CLR"] = new Array(".AR");abelOper["_PRE"] = new Array(".AP");abelOper["_CE"] = new Array(".CE");abelOper["_OE"] = new Array(".OE");abelOper["OE_START"] = new Array(" <= ");abelOper["OE_WHEN"] = new Array(" when ");abelOper["OE_EQUAL"] = new Array(" = ");abelOper["OE_ELSE"] = new Array(" else ");abelOper["B0"] = new Array("'0'");abelOper["B1"] = new Array("'1'");abelOper["BZ"] = new Array("'Z'");abelOper["FD"] = new Array(".D");abelOper["FT"] = new Array(".T");abelOper["FDD"] = new Array(".DEC");abelOper["FTD"] = new Array(".T");abelOper["LD"] = new Array(".LH");abelOper["Q"] = new Array(".Q");var vhdlOper = new Array();vhdlOper["GND"] = new Array("'0'");vhdlOper["VCC"] = new Array("'1'");vhdlOper["NOT"] = new Array(rClrS + "NOT " + rClrE);vhdlOper["AND"] = new Array(rClrS + "AND" + rClrE);vhdlOper["OR"]  = new Array(rClrS + "OR" + rClrE);vhdlOper["XOR"] = new Array(rClrS + "XOR" + rClrE);vhdlOper["EQUAL_COLON"] = new Array("<= ");vhdlOper["EQUAL"] = new Array("<= ");vhdlOper["ASSIGN"] = new Array("");vhdlOper["OPEN_NEGATE"] = new Array("(");vhdlOper["CLOSE_NEGATE"] = new Array(")");vhdlOper["OPEN_PTERM"] = new Array("(");vhdlOper["CLOSE_PTERM"] = new Array(")");vhdlOper["OPEN_BRACE"] = new Array("(");vhdlOper["CLOSE_BRACE"] = new Array(")");vhdlOper["INVALID_OPEN_BRACE"] = new Array("<");vhdlOper["INVALID_CLOSE_BRACE"] = new Array(">");vhdlOper["ENDLN"] = new Array(";");vhdlOper["COMMENT"] = new Array("--");vhdlOper["IMPORT"] = new Array("");vhdlOper["GCK_COM"] = new Array("GCK");vhdlOper["GTS_COM"] = new Array("GTS");vhdlOper["GSR_COM"] = new Array("GSR");vhdlOper["START_EQN"] = new Array(rClrS + "port map" + rClrE + " (");vhdlOper["END_EQN"] = new Array(")");vhdlOper["_I"] = new Array("_I");vhdlOper["_T"] = new Array("_T");vhdlOper["_D"] = new Array("_D");vhdlOper["_C"] = new Array("_C");vhdlOper["_DEC"] = new Array("_C");vhdlOper["_LH"] = new Array("_C");vhdlOper["_CLR"] = new Array("_CLR");vhdlOper["_PRE"] = new Array("_PRE");vhdlOper["_CE"] = new Array("_CE");vhdlOper["_OE"] = new Array("_OE");vhdlOper["OE_START"] = new Array(" <= ");vhdlOper["OE_WHEN"] = new Array(" when ");vhdlOper["OE_EQUAL"] = new Array(" = ");vhdlOper["OE_ELSE"] = new Array(" else ");vhdlOper["B0"] = new Array("'0'");vhdlOper["B1"] = new Array("'1'");vhdlOper["BZ"] = new Array("'Z'");vhdlOper["FD"] = new Array("FDCPE");vhdlOper["FT"] = new Array("FTCPE");vhdlOper["FDD"] = new Array("FDDCPE");vhdlOper["FTD"] = new Array("FTDCPE");vhdlOper["LD"] = new Array("LDCP");vhdlOper["Q"] = new Array("");var verOper = new Array();verOper["GND"] = new Array("1'b0");verOper["VCC"] = new Array("1'b1");verOper["NOT"] = new Array(rClrS + "!" + rClrE);verOper["AND"] = new Array(rClrS + "&&" + rClrE);verOper["OR"]  = new Array(rClrS + "||" + rClrE);verOper["XOR"] = new Array(rClrS + "XOR" + rClrE);verOper["EQUAL_COLON"] = new Array("= ");verOper["EQUAL"] = new Array("= ");verOper["ASSIGN"] = new Array("assign ");verOper["OPEN_NEGATE"] = new Array("(");verOper["CLOSE_NEGATE"] = new Array(")");verOper["OPEN_PTERM"] = new Array("(");verOper["CLOSE_PTERM"] = new Array(")");verOper["OPEN_BRACE"] = new Array("[");verOper["CLOSE_BRACE"] = new Array("]");verOper["INVALID_OPEN_BRACE"] = new Array("<");verOper["INVALID_CLOSE_BRACE"] = new Array(">");verOper["ENDLN"] = new Array(";");verOper["COMMENT"] = new Array("//");verOper["IMPORT"] = new Array("");verOper["GCK_COM"] = new Array("GCK");verOper["GTS_COM"] = new Array("GTS");verOper["GSR_COM"] = new Array("GSR");verOper["START_EQN"] = new Array(" (");verOper["END_EQN"] = new Array(")");verOper["_I"] = new Array("_I");verOper["_T"] = new Array("_T");verOper["_D"] = new Array("_D");verOper["_C"] = new Array("_C");verOper["_DEC"] = new Array("_C");verOper["_LH"] = new Array("_C");verOper["_CLR"] = new Array("_CLR");verOper["_PRE"] = new Array("_PRE");verOper["_CE"] = new Array("_CE");verOper["_OE"] = new Array("_OE");verOper["OE_START"] = new Array(" = ");verOper["OE_WHEN"] = new Array(" ? ");verOper["OE_EQUAL"] = new Array("");verOper["OE_ELSE"] = new Array(" : ");verOper["B0"] = new Array("1'b0");verOper["B1"] = new Array("1'b1");verOper["BZ"] = new Array("1'bz");verOper["FD"] = new Array("FDCPE");verOper["FT"] = new Array("FTCPE");verOper["FDD"] = new Array("FDDCPE");verOper["FTD"] = new Array("FTDCPE");verOper["LD"] = new Array("LDCP");verOper["Q"] = new Array("");var operator = abelOper;var pterms = new Array();var d1 = new Array();var d2 = new Array();var clk = new Array();var set = new Array();var rst = new Array();var trst = new Array();var d1imp = new Array();var d2imp = new Array();var clkimp = new Array();var setimp = new Array();var rstimp = new Array();var trstimp = new Array();var gblclk = new Array();var gblset = new Array();var gblrst = new Array();var gbltrst = new Array();var ce = new Array();var ceimp = new Array();var prld = new Array();var specSig = new Array();var clkNegs = new Array();var setNegs = new Array();var rstNegs = new Array();var trstNegs = new Array();var ceNegs = new Array();var fbnand = new Array();var inreg = new Array();var dOneLit = true;function setOper(type) {  if      (type == "1") { operator = vhdlOper; eqnType = 1; }  else if (type == "2") { operator = verOper;  eqnType = 2; }  else                  { operator = abelOper; eqnType = 0; }}function isXC95() {  if (device.indexOf("95") != -1) return true;  return false;}function is9500() {  if ((device.indexOf("95") != -1) &&      (device.indexOf("XL") == -1) &&      (device.indexOf("XV") == -1)) return true;  return false;}function retSigType(s) {  var sigType = sigTypes[s];  var str = operator["Q"];  if (sigType == "D") str = operator["FD"];  else if (sigType == "T") str = operator["FT"];  else if (sigType.indexOf("LATCH") != -1) str = operator["LD"];  else if (sigType.indexOf("DDEFF") != -1) str = operator["FDD"];  else if (sigType.indexOf("DEFF") != -1) str =  operator["FD"];  else if (sigType.indexOf("DDFF") != -1) str =  operator["FDD"];  else if (sigType.indexOf("TDFF") != -1) str =  operator["FTD"];  else if (sigType.indexOf("DFF") != -1) str =   operator["FD"];  else if (sigType.indexOf("TFF") != -1) str =   operator["FT"];  return str;}function retSigIndex(signal) {  for (s=0; s<signals.length; s++) { if (signals[s] == signal) return s; }  return -1;}function retSigName(signal) {  var str = "";  if (specSig[signal]) str += specSig[signal];  else str += signal;  var idx1 = str.indexOf(operator["INVALID_OPEN_BRACE"]);  var idx2 = str.indexOf(operator["INVALID_CLOSE_BRACE"]);  if ((idx1 != -1) && (idx2 != -1))    str = str.substring(0,idx1) + operator["OPEN_BRACE"] +          str.substring(idx1+1,idx2) + operator["CLOSE_BRACE"] +           str.substring(idx2+1,str.length);  return str;}function removePar(signal) {  var str = signal;  var idx = str.indexOf(operator["OPEN_BRACE"]);  if (idx != -1)    str = str.substring(0,idx) +          str.substring(idx+1,str.indexOf(operator["CLOSE_BRACE"]));  return str;}function isOneLiteral(str) {  if ((str.indexOf(operator["AND"]) != -1) ||      (str.indexOf(operator["OR"]) != -1) ||      (str.indexOf(operator["XOR"]) != -1)) return false;  return true;}function updateName(signal, index) {  var str;  var idx = signal.indexOf(operator["OPEN_BRACE"]);  if (idx != -1)    str = signal.substring(0,idx) +          index + signal.substring(idx);  else str = signal + index;  return str;}function retPterm(pt) {  var str = "";  if (!pterms[pt]) {    if (specSig[pt]) pt = specSig[pt];    return pt;  }  if (pterms[pt].length > 1) str += operator["OPEN_PTERM"];  for (p=0; p<pterms[pt].length; p++) {    var sig = pterms[pt][p];    if (sig.indexOf("xPUP_0") != -1) continue;    if (p>0) str += " " + operator["AND"] + " ";    var neg = 0;    if (sig.indexOf("/") != -1) {      sig = sig.substring(1, sig.length);      str += operator["NOT"];      neg = 1;    }    str += retSigName(sig);  }  if (pterms[pt].length > 1) str += operator["CLOSE_PTERM"];  return str;}function retFBMC(str) {  return str.substring(0,str.length-2);}function retD1D2(signal) {  var str = "";  dOneLit = true;  if (d1[signal]) {    var currImp = "";    for (i=0; i<d1[signal].length; i++) {      if (!eqnType && d1imp[signal] && (d1imp[signal][i] == "1")) {        if (currImp != retFBMC(d1[signal][i]))  {          currImp = retFBMC(d1[signal][i]);          str += nlStr + operator["IMPORT"] + currImp;        }      }      if (i>0) str += nlTabStr + operator["OR"] + spcStr;      str += retPterm(d1[signal][i]);    }    if (d2[signal]) str += nlTabStr + operator["XOR"]+ spcStr;  }  if (d2[signal]) {    var currImp = "";    for (i=0; i<d2[signal].length; i++) {      if (!eqnType && d2imp[signal] && (d2imp[signal][i] == "1")) {        if (currImp != retFBMC(d2[signal][i]))  {          currImp = retFBMC(d2[signal][i]);          str += nlStr + operator["IMPORT"] + currImp;        }      }      if (i>0) str += nlTabStr + operator["OR"] + spcStr;      str += retPterm(d2[signal][i]);    }  }  if (str == "GND") str = operator["GND"];  else if (str == "VCC") str = operator["VCC"];  else if (!isOneLiteral(str)) {    dOneLit = false;    var type = retSigType(retSigIndex(signal));    if ((type == operator["FD"]) ||        (type == operator["FDD"])) type = operator["_D"];    else if ((type == operator["FT"]) ||             (type == operator["FTD"])) type = operator["_T"];    else if (type == operator["LD"] && eqnType) type = "_D";    var tmpStr = updateName(retSigName(signal), type);    tmpStr += spcStr + operator["EQUAL_COLON"];    var idx = retSigIndex(signal);    if (eqnType && sigNegs[idx] == "ON") tmpStr += operator["NOT"] + operator["OPEN_NEGATE"];    str = tmpStr + str;    if (eqnType && sigNegs[idx] == "ON") str += operator["CLOSE_NEGATE"];    str += operator["ENDLN"];  }  return str;}function retClk(signal) {  var str = "";  if (clk[signal]) {    if (clk[signal].length == 1) {      var pterm = retPterm(clk[signal][0]);      if (clkNegs[signal]) {        str += operator["NOT"];        if (!isOneLiteral(pterm)) str += operator["OPEN_NEGATE"];      }      str += pterm;      if (clkNegs[signal] && !isOneLiteral(pterm)) str += operator["CLOSE_NEGATE"];    }    else {      if (clkNegs[signal]) str += operator["NOT"] + operator["OPEN_NEGATE"];      var currImp = "";      for (i=0; i<clk[signal].length; i++) {        if (!eqnType && clkimp[signal] && (clkimp[signal][i] == "1")) {          if (currImp != retFBMC(clk[signal][i]))  {            currImp = retFBMC(clk[signal][i]);            str += nlStr + operator["IMPORT"] + currImp;          }        }        if (i>0) str += nlTabStr + operator["OR"] + spcStr;        str += retPterm(clk[signal][i]);      }      if (clkNegs[signal]) str += operator["CLOSE_NEGATE"];      str += operator["ENDLN"];    }  }  else if (gblclk[signal]) {    if (gblclk[signal].length == 1) {      var pterm = retPterm(gblclk[signal][0]);      if (clkNegs[signal]) {        str += operator["NOT"];        if (!isOneLiteral(pterm)) str += operator["OPEN_NEGATE"];      }      str += pterm;      if (clkNegs[signal] && !isOneLiteral(pterm)) str += operator["CLOSE_NEGATE"];    }    else {      if (clkNegs[signal]) str += operator["NOT"] + operator["OPEN_NEGATE"];      for (i=0; i<gblclk[signal].length; i++) {        if (i>0) str += nlTabStr + operator["OR"] + spcStr;        str += retPterm(gblclk[signal][i]);      }      if (clkNegs[signal]) str += operator["CLOSE_NEGATE"];      str += operator["ENDLN"] + tabStr + cClrS +             operator["COMMENT"] + spcStr + operator["GCK_COM"] + cClrE;    }  }  else if (eqnType) str += operator["B0"];  return str;}function retRst(signal) {  var str = "";  if (rst[signal]) {    if (rst[signal].length == 1) {      var currImp;      if (!eqnType && rstimp[signal] && (rstimp[signal][0] == "1")) {        if (currImp != retFBMC(rst[signal][0]))  {          currImp = retFBMC(rst[signal][0]);          str += nlStr + operator["IMPORT"] + currImp;        }      }      if (rstNegs[signal]) str += operator["NOT"];      str += retPterm(rst[signal][0]);    }    else {      var currImp = "";      if (rstNegs[signal]) str += operator["NOT"] + operator["OPEN_NEGATE"];      for (i=0; i<rst[signal].length; i++) {        if (!eqnType && rstimp[signal] && (rstimp[signal][i] == "1")) {          if (currImp != retFBMC(rst[signal][i]))  {

⌨️ 快捷键说明

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