From d3b23cbfb41993fec4c64dd243fa41b8e4926e6b Mon Sep 17 00:00:00 2001 From: YuhangQ Date: Sun, 12 Feb 2023 16:22:32 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E9=AB=98=E6=95=88=E7=9A=84=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E8=A7=A3=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- atpg | Bin 205864 -> 44304 bytes circuit.cpp | 30 +++++++++++ circuit.h | 4 ++ main.cpp | 13 +++-- makefile | 2 +- parser.cpp | 152 ++++++++++++++++++++++++++++++++-------------------- res.txt | 90 +++++++++++++++++++++++++++++++ 7 files changed, 228 insertions(+), 63 deletions(-) create mode 100644 res.txt diff --git a/atpg b/atpg index 61b9f2d1f7110ec4425e0420faf39949506be88a..6c332445df2307481c278bf576049e8677487e2a 100755 GIT binary patch literal 44304 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 literal 205864 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 diff --git a/circuit.cpp b/circuit.cpp index e69de29..aa9ef8b 100644 --- a/circuit.cpp +++ b/circuit.cpp @@ -0,0 +1,30 @@ +#include "circuit.h" + +#include +#include + +void Circuit::cal_topo_index() { + int topo = 1; + std::queue q; + + std::unordered_map ins; + for(Gate* gate : gates) { + ins[gate] = gate->inputs.size(); + } + + for(auto in : PIs) { + in->topo = topo++; + q.push(in); + } + + while(!q.empty()) { + Gate* g = q.front(); q.pop(); + for(Gate* out : g->outputs) { + ins[out]--; + if(ins[out] == 0) { + out->topo = topo++; + q.push(out); + } + } + } +} \ No newline at end of file diff --git a/circuit.h b/circuit.h index eba71d0..a893714 100644 --- a/circuit.h +++ b/circuit.h @@ -4,6 +4,7 @@ class Gate { public: + int topo; std::string name; enum { AND, NAND, OR, NOR, XOR, XNOR, NOT, BUF, INPUT, OUTPUT } type; enum { VAL_ZERO, VAL_ONE, VAL_X } value; @@ -15,6 +16,9 @@ class Circuit { public: std::vector PIs; std::vector POs; +std::vector gates; std::unordered_map name2gate; void parse_from_file(const char *filename); +void cal_topo_index(); +void cal_headlines(); }; \ No newline at end of file diff --git a/main.cpp b/main.cpp index 1a666f4..e1c8ad7 100644 --- a/main.cpp +++ b/main.cpp @@ -1,5 +1,6 @@ #include #include +#include #include "circuit.h" @@ -16,11 +17,15 @@ int main(int args, char* argv[]) { printf("parsing file %s...\n", argv[1]); circuit.parse_from_file(argv[1]); printf("====== Circuit Statistics ====== \n"); - printf("PI:\t%d\n", circuit.PIs.size()); - printf("PO:\t%d\n", circuit.POs.size()); - printf("Gates:\t%d\n", circuit.name2gate.size()); + printf("PI:\t%ld\n", circuit.PIs.size()); + printf("PO:\t%ld\n", circuit.POs.size()); + printf("Gates:\t%ld\n", circuit.name2gate.size()); - + printf("cal topo index ...\n"); + circuit.cal_topo_index(); + for(Gate* gate : circuit.gates) { + assert(gate->topo > 0); + } return 0; } \ No newline at end of file diff --git a/makefile b/makefile index 386f998..79aab05 100644 --- a/makefile +++ b/makefile @@ -7,7 +7,7 @@ #编译工具用g++,以同时支持C和C++程序,以及二者的混合编译 CC=g++ -CPPFLAGS=-O3 +CPPFLAGS=-O3 -std=c++17 #使用$(winldcard *.c)来获取工作目录下的所有.c文件的列表 #sources:=main.cpp command.c diff --git a/parser.cpp b/parser.cpp index 906798b..fe276e7 100644 --- a/parser.cpp +++ b/parser.cpp @@ -6,10 +6,23 @@ #include #include -std::string trim(const std::string& s) { - auto wsfront = std::find_if_not(s.begin(), s.end(), [](int c){ return std::isspace(c); }); - auto wsback = std::find_if_not(s.rbegin(), s.rend(), [](int c){ return std::isspace(c); }).base(); - return (wsback <= wsfront ? std::string() : std::string(wsfront, wsback)); +void line2tokens(const std::string &line, std::vector &tokens) { + std::string token; + for(char c : line) { + if(c == ' ' || c == '\t' || c == '\r' || c == '\n') continue; + if(c == '=' || c == ',' || c == '(' || c == ')') { + if(!token.size()) continue; + tokens.push_back(token); + token.clear(); token += c; + tokens.push_back(token); + token.clear(); + } else { + token += c; + } + } + if(token.size()) { + tokens.push_back(token); + } } void Circuit::parse_from_file(const char *filename) { @@ -23,79 +36,102 @@ void Circuit::parse_from_file(const char *filename) { // buf 10MB file.rdbuf()->pubsetbuf(0, 10 *1024 * 1024); + std::vector bufPO; + std::string line; while(std::getline(file, line)) { if(line[0] == '#') continue; if(line == "\r" || line == "") continue; - std::cmatch m; - if(std::regex_match(line.c_str(), m, std::regex("INPUT\\s*\\(\\s*(.*)\\s*\\)\\s*"))) { + std::vector tokens; - Gate *input = new Gate(); - input->name = m.str(1); - input->type = Gate::INPUT; - input->value = Gate::VAL_X; - name2gate.insert(std::make_pair(input->name, input)); + line2tokens(line, tokens); + // std::cout << line << std::endl; + // std::cout << "tokens: "; + // for(auto &token : tokens) { + // std::cout << "$" << token << "$ "; + // } + // std::cout << std::endl; + // gate + if(tokens.size() >= 6 && tokens[1] == "=" && tokens[3] == "(" && tokens.back() == ")") { + std::vector ins; - std::cout << "input -> $" << input->name << "$" << std::endl; - - PIs.push_back(input); - } else if(std::regex_match(line.c_str(), m, std::regex("OUTPUT\\s*\\(\\s*(.*)\\s*\\)\\s*"))) { - - Gate *output = new Gate(); - output->name = m.str(1); - output->type = Gate::OUTPUT; - output->value = Gate::VAL_X; - name2gate.insert(std::make_pair(output->name, output)); - - POs.push_back(output); - } else if(std::regex_match(line.c_str(), m, std::regex("\\s*(\\S+)\\s*=\\s*(\\w+)\\s*\\(\\s*(.*)\\s*\\)\\s*"))) { - - std::string output_name = m.str(1); - std::string gate_name = m.str(2); - std::string list = m.str(3); - - Gate *gate = new Gate(); - - gate->name = output_name; - gate->value = Gate::VAL_X; - - name2gate.insert(std::make_pair(gate->name, gate)); - - // split by "," - std::regex pattern(R"(\s*,\s*)"); - std::sregex_token_iterator it(list.begin(), list.end(), pattern, -1); - std::sregex_token_iterator end; - - while (it != end) { - std::string in = trim(*it++); - if(!name2gate.count(in)) { - printf("Error while reading file: $%s$ is not defined before used.\n", in.c_str()); + for(int i=4; iname = tokens[0]; + gate->value = Gate::VAL_X; + + for(auto &in : ins) { + if(!name2gate.count(in)) { + printf("Error while reading file: gate %s used before defination.\n", in.c_str()); + exit(1); + } + + auto in_gate = name2gate[in]; gate->inputs.push_back(in_gate); in_gate->outputs.push_back(gate); } - if(gate_name == "AND") { gate->type = Gate::AND; } - else if(gate_name == "NAND") { gate->type = Gate::NAND; } - else if(gate_name == "OR") { gate->type = Gate::OR; } - else if(gate_name == "NOR") { gate->type = Gate::NOR; } - else if(gate_name == "XOR") { gate->type = Gate::XOR; } - else if(gate_name == "XNOR") { gate->type = Gate::XNOR; } - else if(gate_name == "NOT") { gate->type = Gate::NOT; } - else if(gate_name == "BUF") { gate->type = Gate::BUF; } + if(tokens[2] == "AND") { gate->type = Gate::AND; } + else if(tokens[2] == "NAND") { gate->type = Gate::NAND; } + else if(tokens[2] == "OR") { gate->type = Gate::OR; } + else if(tokens[2] == "NOR") { gate->type = Gate::NOR; } + else if(tokens[2] == "XOR") { gate->type = Gate::XOR; } + else if(tokens[2] == "XNOR") { gate->type = Gate::XNOR; } + else if(tokens[2] == "NOT") { gate->type = Gate::NOT; } + else if(tokens[2] == "BUFF") { gate->type = Gate::BUF; } + else if(tokens[2] == "BUF") { gate->type = Gate::BUF; } else { - printf("Error while reading file: %s is not a valid gate.\n", gate_name.c_str()); + printf("Error while reading file: %s is not a valid gate.\n", tokens[2].c_str()); exit(1); } - } else { - printf("Error while reading file: \"%s\" is a wrong line.\n", line.c_str()); + name2gate.insert(std::make_pair(gate->name, gate)); + gates.push_back(gate); + } + // input + else if(tokens.size() == 4 && tokens[0] == "INPUT" && tokens[1] == "(" && tokens[3] == ")") { + Gate* gate = new Gate(); + gate->name = tokens[2]; + gate->type = Gate::INPUT; + gate->value = Gate::VAL_X; + + name2gate.insert(std::make_pair(gate->name, gate)); + gates.push_back(gate); + PIs.push_back(gate); + } + // gate + else if(tokens.size() == 4 && tokens[0] == "OUTPUT" && tokens[1] == "(" && tokens[3] == ")") { + bufPO.push_back(tokens[2]); + } + // invalid line + else { + printf("Error while reading line: %s\n", line.c_str()); exit(1); - } + } + } + + // handle PO + for(auto& po_name : bufPO) { + if(!name2gate.count(po_name)) { + printf("Error while reading file: po %s is not a exist gate.\n", po_name.c_str()); + exit(1); + } + POs.push_back(name2gate[po_name]); } } \ No newline at end of file diff --git a/res.txt b/res.txt new file mode 100644 index 0000000..66b69eb --- /dev/null +++ b/res.txt @@ -0,0 +1,90 @@ +parsing file c432.bench... +INPUT(1) +tokens: $INPUT$ $($ $1$ $)$ +INPUT(4) +tokens: $INPUT$ $($ $4$ $)$ +INPUT(8) +tokens: $INPUT$ $($ $8$ $)$ +INPUT(11) +tokens: $INPUT$ $($ $11$ $)$ +INPUT(14) +tokens: $INPUT$ $($ $14$ $)$ +INPUT(17) +tokens: $INPUT$ $($ $17$ $)$ +INPUT(21) +tokens: $INPUT$ $($ $21$ $)$ +INPUT(24) +tokens: $INPUT$ $($ $24$ $)$ +INPUT(27) +tokens: $INPUT$ $($ $27$ $)$ +INPUT(30) +tokens: $INPUT$ $($ $30$ $)$ +INPUT(34) +tokens: $INPUT$ $($ $34$ $)$ +INPUT(37) +tokens: $INPUT$ $($ $37$ $)$ +INPUT(40) +tokens: $INPUT$ $($ $40$ $)$ +INPUT(43) +tokens: $INPUT$ $($ $43$ $)$ +INPUT(47) +tokens: $INPUT$ $($ $47$ $)$ +INPUT(50) +tokens: $INPUT$ $($ $50$ $)$ +INPUT(53) +tokens: $INPUT$ $($ $53$ $)$ +INPUT(56) +tokens: $INPUT$ $($ $56$ $)$ +INPUT(60) +tokens: $INPUT$ $($ $60$ $)$ +INPUT(63) +tokens: $INPUT$ $($ $63$ $)$ +INPUT(66) +tokens: $INPUT$ $($ $66$ $)$ +INPUT(69) +tokens: $INPUT$ $($ $69$ $)$ +INPUT(73) +tokens: $INPUT$ $($ $73$ $)$ +INPUT(76) +tokens: $INPUT$ $($ $76$ $)$ +INPUT(79) +tokens: $INPUT$ $($ $79$ $)$ +INPUT(82) +tokens: $INPUT$ $($ $82$ $)$ +INPUT(86) +tokens: $INPUT$ $($ $86$ $)$ +INPUT(89) +tokens: $INPUT$ $($ $89$ $)$ +INPUT(92) +tokens: $INPUT$ $($ $92$ $)$ +INPUT(95) +tokens: $INPUT$ $($ $95$ $)$ +INPUT(99) +tokens: $INPUT$ $($ $99$ $)$ +INPUT(102) +tokens: $INPUT$ $($ $102$ $)$ +INPUT(105) +tokens: $INPUT$ $($ $105$ $)$ +INPUT(108) +tokens: $INPUT$ $($ $108$ $)$ +INPUT(112) +tokens: $INPUT$ $($ $112$ $)$ +INPUT(115) +tokens: $INPUT$ $($ $115$ $)$ +OUTPUT(223) +tokens: $OUTPUT$ $($ $223$ $)$ +OUTPUT(329) +tokens: $OUTPUT$ $($ $329$ $)$ +OUTPUT(370) +tokens: $OUTPUT$ $($ $370$ $)$ +OUTPUT(421) +tokens: $OUTPUT$ $($ $421$ $)$ +OUTPUT(430) +tokens: $OUTPUT$ $($ $430$ $)$ +OUTPUT(431) +tokens: $OUTPUT$ $($ $431$ $)$ +OUTPUT(432) +tokens: $OUTPUT$ $($ $432$ $)$ +118 = NOT(1) +tokens: $118$ $=$ $NOT$ $($ $1$ $)$ +Error while reading line: 118 = NOT(1)