亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? genvhdl.cpp

?? 產生你所需要的FIR濾波器
?? CPP
字號:
/////////////////////////////////////////////////////////////////////////                     Generate VHDL Source Code                     /////////////////////////////////////////////////////////////////////////// This Module Generates VHDL Syntax                                 //// and VHDL Source code from abstract input code                     ///////////////////////////////////////////////////////////////////////////// Writer      : Boris Kipnis// Last Update : 5/5/2005//#include "GenVHDL.h"#include <sys/time.h>/////////////////////////////////////////////////////////////////////////                    Generate VHDL HEADER                           /////////////////////////////////////////////////////////////////////////vector<string> GenVHDL::VHDL_GenHeader(vector<string> commentsIn) {  vector<string> str,comments;  char MyTimeStr[200];  time_t tt;  struct tm ut;    tt = time(NULL);  localtime_r(&tt, &ut);  sprintf(MyTimeStr,"-- Date %d/%d/%d\r\n-- Time %d:%d:%d",          ut.tm_mday,(ut.tm_mon+1),(1900+ut.tm_year),ut.tm_hour,ut.tm_min,ut.tm_sec);  str.clear();  str.push_back("--------------------------------------------------");  str.push_back("-- Atomatic VHDL Code Generator (v1.0)          --");  str.push_back("--                                              --");  str.push_back("-- Writed By: Boris Kipnis                      --");  str.push_back("--------------------------------------------------");  str.push_back("-- File Name : "+m_fname+".vhd");  str.push_back("--------------------------------------------------");  str.push_back("-- Created at: ");  str.push_back(MyTimeStr);  str.push_back("--------------------------------------------------");  str.push_back("-- Comments:");  str.push_back("--");  comments = AddStr2Vector("-- ",commentsIn);  str      = AddStrVector2Vector(str,comments);  str.push_back("");  str.push_back("LIBRARY IEEE;");  str.push_back("USE IEEE.STD_LOGIC_1164.ALL;");  str.push_back("USE IEEE.STD_LOGIC_ARITH.ALL;");  str.push_back("USE IEEE.STD_LOGIC_UNSIGNED.ALL;");  str.push_back("");  return(str);}//////////////////////////////////////////////////////////////////                  Generate Ports                            //////////////////////////////////////////////////////////////////vector<string>  GenVHDL::VHDL_GenPort(vector<VHDL_var*> ioList) {  int i;  vector<string> str;  string s;  VHDL_var* port;   str.clear();   str.push_back("port(");    for (i=0; i<ioList.size(); i++) {    port = ioList[i];    s = "  ";    s += port->GetVarName();    s += " : ";    s += port->GetPortTypeStr();    s += " ";    s += port->GetVarTypeStr();    if (i<(ioList.size()-1)) s += ";";    str.push_back(s);  }  str.push_back(");");  return(str);}/////////////////////////////////////////////////////////////////// Generate Complite Entity (Entity Name,ports,end entity)     ///////////////////////////////////////////////////////////////////vector<string>  GenVHDL::VHDL_GenEntty(vector<VHDL_var*> ioList) {  vector<string> str;  str.clear();  str.push_back("entity "+m_fname+" is");  str = AddStrVector2Vector(str,VHDL_GenPort(ioList));  str.push_back("end "+m_fname+";");  str.push_back("");   return(str);}///////////////////////////////////////////////////////////////////                  Generate Variable List                     ///////////////////////////////////////////////////////////////////vector<string>  GenVHDL::VHDL_GenVar(vector<VHDL_var*> varList) {  vector<string> str;  string s;  int i;  str.clear();  printf("GenVar varSize=%d\r\n",varList.size());  for (i=0;i<varList.size();i++) {    //printf(".");    s =  "  Signal ";    s += varList[i]->GetVarName();    s += " : ";    s += varList[i]->GetVarTypeStr();    s += ";";    str.push_back(s);  }   return(str);}///////////////////////////////////////////////////////////////////                   Generate Architecture                     ///////////////////////////////////////////////////////////////////vector<string>  GenVHDL::VHDL_GenArchitecture(vector<VHDL_var*> varList) {  vector<string> str;  str.clear();  str.push_back("architecture Behavioral of " + m_fname + " is");  str = AddStrVector2Vector(str,VHDL_GenVar(varList));  str.push_back("");  return(str);}///////////////////////////////////////////////////////////////////                     Generate VHDL Body                      ///////////////////////////////////////////////////////////////////vector<string>  GenVHDL::VHDL_GenBody(vector<string> userCode) {  vector<string> str;  int i;  str.clear();  str.push_back("begin");  for (i=0;i<userCode.size();i++) {    str.push_back("  "+userCode[i]);  }  str.push_back("end Behavioral;");  return(str);}////////////////////////////////////////////////////////////////// Generate VHDL Codevector<string> GenVHDL::VHDL_Gen(vector<string> comments, vector<VHDL_var*> ioList,                                 vector<VHDL_var*> varList,vector<string> userCode) {  vector<string> code;  int i;  code.clear();  code = AddStrVector2Vector(code, VHDL_GenHeader(comments));  code = AddStrVector2Vector(code, VHDL_GenEntty(ioList));  code = AddStrVector2Vector(code, VHDL_GenArchitecture(varList));  code = AddStrVector2Vector(code, m_components);  code = AddStrVector2Vector(code, VHDL_GenBody(userCode));  return(code);}/////////////////////////////////////////////            Constructor                /////////////////////////////////////////////GenVHDL::GenVHDL(string fname) {  m_varList.clear();  m_ioList.clear();  m_code.clear();  m_comments.clear();  m_components.clear();  m_fname = fname;}/////////////////////////////////////////////            Destructor                 /////////////////////////////////////////////GenVHDL::~GenVHDL() {  vector<string> code;  FILE * fout;  int i;  string fileName;  fileName = m_fname + ".vhd";  code = VHDL_Gen(m_comments,m_ioList,m_varList,m_code);  fout = fopen(fileName.c_str(),"wt");  for (i=0;i<code.size();i++) {    fprintf(fout,"%s\r\n",code[i].c_str());  }  fclose(fout);  m_varList.clear();  m_code.clear();}/////////////////////////////////////////////           ADD Variable                /////////////////////////////////////////////VHDL_var* GenVHDL::AddVariable(string nameIn, int type, int from=0, int to=0,int pipeStage=0,string str_label="",void* attach=NULL) {  VHDL_var* var;  int i;  string name;  name = nameIn;  for (i=0;i<pipeStage;i++) name+= "_d";  var = new VHDL_var(name,type,from,to,(-1),str_label,attach);  m_varList.push_back(var);  return(var);}VHDL_var* GenVHDL::AddVariable(VHDL_var* varIn,int pipeStage=0) {  string name;  int i;  VHDL_var* var;  name = varIn->GetVarName();  for (i=0;i<pipeStage;i++) name+= "_d";  var = new VHDL_var(name,varIn->GetVarType(),varIn->GetRangeFrom(),varIn->GetRangeTo(),                     varIn->GetPortType(),varIn->GetLabel(),varIn->GetAttachment());  m_varList.push_back(var);  return(var);}VHDL_var* GenVHDL::AddBaseVariable(VHDL_var* var) {  return(AddVariable(var,0));}////////////////////////////////////////////////////////////                  Get Variable                        ////               from variables list                    ////////////////////////////////////////////////////////////VHDL_var* GenVHDL::GetVariable(string name) {  int i;  VHDL_var* var;    var = NULL;  for (i=0;i<m_varList.size();i++) {    if (name.compare(m_varList[i]->GetVarName()) == 0) { // scan variables      var = m_varList[i];    }    if (name.compare(m_ioList[i]->GetVarName()) == 0) {  // scan IO ports      var = m_ioList[i];    }  }  return(var);}VHDL_var* GenVHDL::GetVariable(string baseName,int pipeStage) {  int i;  string name;  name = baseName;  for (i=0;i<pipeStage;i++) name+="_d";  return(GetVariable(name));}/////////////////////////////////////////////           ADD I/O Port                /////////////////////////////////////////////VHDL_var* GenVHDL::AddPort(string name, int type, int In_nOut, int from=NULL, int to=NULL,void* attach=NULL) {  VHDL_var* var;  var = new VHDL_var(name,type,from,to,In_nOut,"",attach);  m_ioList.push_back(var);  return(var);}/////////////////////////////////////////////         ADD Comments                  /////////////////////////////////////////////void GenVHDL::AddComments(string str) {  m_comments.push_back(str);}void GenVHDL::AddComments(vector<string> str) {  m_comments = AddStrVector2Vector(m_comments,str);}void GenVHDL::AddCodeComments(string str) { AddVHDLCode("-- "+str);}void GenVHDL::AddCodeComments(vector<string> strIn) {  vector<string> strOut;  strOut.clear();  strOut = AddStr2Vector("-- ",strIn);  AddVHDLCode(strOut);}/////////////////////////////////////////////////// add Code Tititle// -----------// -- Title --// -----------void GenVHDL::AddCodeTitle(string strIn) { string str; int borderSize = 80; int complementSize; int i;  complementSize = (borderSize - strIn.size() - 4)/2; str = ""; for (i=0;i<borderSize;i++) str += "-"; AddVHDLCode(str); str = "--"; for (i=0;i<complementSize;i++) str+=" "; str += strIn; while (str.size()<(borderSize-2)) str+=" "; str += "--"; AddVHDLCode(str); str = ""; for (i=0;i<borderSize;i++) str += "-"; AddVHDLCode(str);}/////////////////////////////////////////////          ADD VHDL Code Line           /////////////////////////////////////////////void GenVHDL::AddVHDLCode(string code) {  m_code.push_back(code); }void GenVHDL::AddVHDLCode(vector<string> code) {  m_code = AddStrVector2Vector(m_code,code);}void GenVHDL::AddVHDLCodeClk(string code,int enable) {  AddVHDLCode(              "process (Clk) begin");  AddVHDLCode(              "  if (Clk'event and Clk='1') then");  if (enable) AddVHDLCode(  "    if (CLK_EN='1') then");  AddVHDLCode(              "    "+code);  if (enable) AddVHDLCode(  "    end if;");  AddVHDLCode(              "  end if;");  AddVHDLCode(              "end process;");}void GenVHDL::AddVHDLCodeClk(vector<string> code,int enable) {  AddVHDLCode(              "process (Clk) begin");  AddVHDLCode(              "  if (Clk'event and Clk='1') then");  if (enable) AddVHDLCode(  "    if (CLK_EN='1') then");  AddVHDLCode(AddStr2Vector("       ",code));  if (enable) AddVHDLCode(  "    end if;");  AddVHDLCode(              "  end if;");  AddVHDLCode(              "end process;");}/////////////////////////////////////////////////////////////////////////////////////                    Others internal service functions                          /////////////////////////////////////////////////////////////////////////////////////vector<string> GenVHDL::AddStrVector2Vector(vector<string> a,vector<string> b) {  vector<string> str;  int i;  str = a;  for (i=0;i<b.size();i++) {    str.push_back(b[i]);  }  return(str);}vector<string> GenVHDL::AddStr2Vector(string a,vector<string> b) {  vector<string> str;  int i;  str.clear();  for (i=0;i<b.size();i++) {    str.push_back(a + b[i]);  }  return(str);}/////////////////////////////////////////////////////////////////////////////////////                   Export Component from IO ports                              /////////////////////////////////////////////////////////////////////////////////////vector<string> GenVHDL::GetComponent() {  vector<string> code,portCode;  code.clear();  code.push_back("component "+m_fname+" is");  portCode = VHDL_GenPort(m_ioList);  code = AddStrVector2Vector(code,portCode);  code.push_back("end component;");  return(code);}/////////////////////////////////////////////////////////////////////////////////////                   Import Component                                            /////////////////////////////////////////////////////////////////////////////////////void GenVHDL::AddComponent(string str) {	m_components.push_back(str);}/////////////////////////////////////////////////////////////////////////////////////                               Resample Array                                  /////////////////////////////////////////////////////////////////////////////////////vector<VHDL_var*> GenVHDL::ResampleArray(vector<VHDL_var*> varIn,int clk_en) {  vector<string> code;  vector<VHDL_var*> varOut;  VHDL_var* tempVar;  int i;  char myChar[200];  code.clear();  varOut.clear();  for (i=0;i<varIn.size();i++) {    tempVar = new VHDL_var(varIn[i],1);    AddVariable(tempVar,0);    varOut.push_back(tempVar);    sprintf(myChar,"%s <= %s;",(varIn[i]->GetVarName()).c_str(),(varOut[i]->GetVarName()).c_str() );  }  AddVHDLCodeClk(code,clk_en);  return(varOut);}string GenVHDL::GetFileName() {  return(m_fname);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产人妖乱国产精品人妖| 亚洲成人免费影院| 亚洲黄色性网站| 免费成人小视频| av一二三不卡影片| 3d成人h动漫网站入口| 久久精品水蜜桃av综合天堂| 一区二区三区在线播放| 九九热在线视频观看这里只有精品| 成人福利视频网站| 777久久久精品| 亚洲国产精品成人久久综合一区| 偷拍亚洲欧洲综合| 99久久精品免费看国产| 精品裸体舞一区二区三区| 一区二区三区美女| 成人午夜在线免费| 精品成人在线观看| 日产欧产美韩系列久久99| 色婷婷久久久久swag精品 | 欧美美女bb生活片| 国产精品久久久久久户外露出| 人人精品人人爱| 欧美日韩日日摸| 一区二区三区在线免费观看| 国产v日产∨综合v精品视频| 欧美一区二区三区电影| 亚洲国产精品久久久久婷婷884 | 中日韩av电影| 激情久久久久久久久久久久久久久久| 欧美性高清videossexo| 最新久久zyz资源站| 国产不卡视频在线观看| 久久亚洲捆绑美女| 国产自产2019最新不卡| 精品国产91久久久久久久妲己 | 欧美高清在线视频| 国产一区视频网站| 久久久无码精品亚洲日韩按摩| 另类小说图片综合网| 91麻豆精品国产91久久久使用方法| 亚洲h在线观看| 欧美女孩性生活视频| 亚洲一区二区3| 欧美日韩国产天堂| 日本不卡视频在线| 日韩一区二区精品| 极品尤物av久久免费看| 久久免费精品国产久精品久久久久 | 91久久精品网| 一区二区三区四区在线| 欧美私人免费视频| 日韩精品一二三四| 精品免费国产一区二区三区四区| 激情综合网最新| 久久久久国产精品免费免费搜索| 国产精品一二三四区| 国产精品人妖ts系列视频| 成人av集中营| 亚洲电影一级黄| 欧美一区二区二区| 国产成人丝袜美腿| 一区二区三区美女| 精品日韩欧美在线| 成人性生交大片免费看视频在线| 亚洲欧美国产77777| 精品视频123区在线观看| 另类小说一区二区三区| 欧美韩日一区二区三区四区| 日本高清成人免费播放| 日本一道高清亚洲日美韩| 亚洲精品在线免费观看视频| hitomi一区二区三区精品| 亚洲成a人片在线不卡一二三区| 欧美va天堂va视频va在线| 9191久久久久久久久久久| 国模娜娜一区二区三区| 亚洲男同1069视频| 欧美精品一区二区在线播放 | 日韩精品中午字幕| 国产盗摄一区二区三区| 夜夜嗨av一区二区三区四季av | 亚洲成人激情社区| 久久久三级国产网站| 色综合久久综合中文综合网| 久久福利视频一区二区| 亚洲色欲色欲www| 日韩你懂的电影在线观看| 91亚洲精品乱码久久久久久蜜桃| 午夜a成v人精品| ...av二区三区久久精品| 日韩精品一区二区三区swag | 欧美一区二区在线看| av爱爱亚洲一区| 久久aⅴ国产欧美74aaa| 亚洲一区二区四区蜜桃| 中文字幕精品一区二区三区精品| 欧美日本在线一区| 色婷婷av一区二区三区大白胸| 国内国产精品久久| 日本网站在线观看一区二区三区 | 蜜臀精品一区二区三区在线观看| 欧美激情一区二区三区不卡 | 丝袜脚交一区二区| 亚洲人精品午夜| 亚洲国产精品av| 精品av久久707| 日韩一级精品视频在线观看| 在线精品视频一区二区| 99久久99久久综合| 懂色av一区二区三区蜜臀| 久久精品国产色蜜蜜麻豆| 视频在线观看一区| 亚洲高清免费在线| 亚洲午夜久久久久| 一区二区在线观看免费| 国产精品色哟哟网站| 国产精品午夜春色av| 久久久精品天堂| 久久这里只有精品视频网| 精品欧美久久久| 久久久国产精品不卡| 2021久久国产精品不只是精品| 日韩欧美激情一区| 精品国产免费人成在线观看| 精品国产露脸精彩对白 | 日韩精品电影在线| 亚洲成av人在线观看| 亚洲一区二区三区视频在线播放 | 欧美日韩一区成人| 欧美视频三区在线播放| 欧美男生操女生| 一区二区三区**美女毛片| 一区二区三区色| 亚洲国产精品久久久久秋霞影院| 午夜精品福利久久久| 日韩国产成人精品| 久久精品久久久精品美女| 国产精品资源站在线| 丰满岳乱妇一区二区三区| 91影院在线免费观看| 在线观看亚洲专区| 91精品国产综合久久精品app| 91精品免费在线观看| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 精品国产在天天线2019| 国产精品情趣视频| 一区二区欧美在线观看| 日韩精品欧美成人高清一区二区| 麻豆国产精品777777在线| 国产二区国产一区在线观看| youjizz久久| 欧美精品一级二级| 国产日韩欧美不卡| 一区二区三区在线视频播放 | 亚洲免费观看高清完整版在线| 亚洲国产人成综合网站| 久久av中文字幕片| 波多野结衣亚洲一区| 欧美高清视频在线高清观看mv色露露十八 | 色香蕉久久蜜桃| 欧美一区二区三级| 国产精品素人视频| 日韩精品国产欧美| www.视频一区| 日韩一区二区三区四区五区六区| 欧美国产精品一区| 日本不卡视频在线| 色综合视频在线观看| 日韩精品一区二区三区中文精品| 国产精品久久久久永久免费观看 | 日韩理论片一区二区| 青草av.久久免费一区| 成人动漫中文字幕| 日韩视频一区二区在线观看| 亚洲视频免费在线观看| 久久er99精品| 欧美午夜在线一二页| 国产精品人成在线观看免费| 日本午夜一本久久久综合| 91麻豆产精品久久久久久| 久久久蜜桃精品| 日韩国产精品久久久久久亚洲| 成人性色生活片| 久久综合资源网| 青娱乐精品视频| 欧美午夜视频网站| 亚洲日本青草视频在线怡红院| 精品一区二区三区蜜桃| 欧美夫妻性生活| 亚洲综合在线免费观看| 国产·精品毛片| 久久―日本道色综合久久| 日本伊人午夜精品| 欧美精品777| 性做久久久久久免费观看| 日本韩国欧美一区二区三区| 国产精品久线在线观看| 国产乱人伦偷精品视频不卡| 日韩欧美在线123|