diff --git a/README.md b/README.md index 6e293a4b70bc862bac822a4c15e70dea12abc760..92929644d4f60f7f5e5699e63cda9924c3bbe43f 100644 --- a/README.md +++ b/README.md @@ -1,52 +1,52 @@ -# eda_qt - -### -介绍 -eda软件开发 - -## - 开发需求 -### ------------001------------ -点击“新建模块”按钮后,弹出一对话框,如: -![输入图片说明](https://images.gitee.com/uploads/images/2021/0123/232300_bb1cd7c7_8607408.png "QQ截图20210123232228.png") - -用户可输入:模块名称、input端口数量、output端口数量、inout端口数量 -点击ok后,将出现一“矩形图”,代表着该模块 -![这是我们软件里用的矩形](https://images.gitee.com/uploads/images/2021/0123/232810_4125e7a6_8607408.png "矩形.png") -上图是我们要开发的软件里用的矩形图 -这是我们仿照的软件里的截图,模块名为123,input、output、inout都为1 -![输入图片说明](https://images.gitee.com/uploads/images/2021/0123/232955_c341839e_8607408.png "QQ截图20210123232905.png") -点击某一端口时,应做到可以修改端口的属性,包括:![输入图片说明](https://images.gitee.com/uploads/images/2021/0123/233219_b40e4d51_8607408.png "QQ截图20210123233154.png") -|端口名:要在矩形图上体现 -|输入输出类型:可以在input、output、inout中选![输入图片说明](https://images.gitee.com/uploads/images/2021/0123/233346_328b5e77_8607408.png "QQ截图20210123233330.png") -|数据类型:可以在wire、reg中选![输入图片说明](https://images.gitee.com/uploads/images/2021/0123/233408_06262ce9_8607408.png "QQ截图20210123233336.png") -|数据长度:可设置正整数值 -|颜色:此功能目前可先不做。。 -### ------------002------------ -双击模块矩形,可进入用户代码编辑界面 -此时用户只需要输入算法代码 如:assign c = a & b; -其他代码由软件自动生成。 -![输入图片说明](https://images.gitee.com/uploads/images/2021/0123/234049_deade8af_8607408.png "QQ截图20210123234037.png") -其中第一段的格式为module xxx[*](端口名); 如用户在最开始的对话框中填写模块名为123,且整个模块中所有的端口为a、b、c三个时 -软件将会生成module 123[*](a,b,c); - **第二段** 代码为:input/output/inout 端口名;例如用户设置a为input,b为output,c为inout。则代码为 -input a; output b; inout c; - **第三段** 代码为:端口数据类型 端口名;例如用户定义a端口为wire型,b、c端口为reg型,则: -wire a; reg b; reg c; -第四段代码为之前用户输入的算法代码 -最后是固定句式:endmodule 相当于这个模块结束了 -另外要注意:当端口的数据长度定义为i(正整数)时,相应的在上述 **第二段、第三段** 代码中要有所改变,在端口名前加[i-1:0] -例如:![输入图片说明](https://images.gitee.com/uploads/images/2021/0123/234717_374091e7_8607408.png "QQ截图20210123234621.png")用户定义了p0为3位 -![输入图片说明](https://images.gitee.com/uploads/images/2021/0123/234922_d18c6d0d_8607408.png "QQ截图20210123234626.png") ![输入图片说明](https://images.gitee.com/uploads/images/2021/0123/234930_6490091b_8607408.png "QQ截图20210123234630.png") -则p0前面加[2:0] -### ------------003------------ -应有“保存模块”和“生成代码”两个按钮。其中: -保存模块:做到将此次用户新建的模块里的所有内容打包保存 下次用户双击时可以直接在软件里打开 -生成代码:将软件生成的代码 让用户选择位置保存。保存为 **verilog目录** 目录下应有 **此模块及其内部子模块** 所有的verilog代码文件 **扩展名为.v** - - - - - - - - - +# eda_qt + +### -介绍 +eda软件开发 + +## - 开发需求 +### ------------001------------ +点击“新建模块”按钮后,弹出一对话框,如: +![输入图片说明](https://images.gitee.com/uploads/images/2021/0123/232300_bb1cd7c7_8607408.png "QQ截图20210123232228.png") + +用户可输入:模块名称、input端口数量、output端口数量、inout端口数量 +点击ok后,将出现一“矩形图”,代表着该模块 +![这是我们软件里用的矩形](https://images.gitee.com/uploads/images/2021/0123/232810_4125e7a6_8607408.png "矩形.png") +上图是我们要开发的软件里用的矩形图 +这是我们仿照的软件里的截图,模块名为123,input、output、inout都为1 +![输入图片说明](https://images.gitee.com/uploads/images/2021/0123/232955_c341839e_8607408.png "QQ截图20210123232905.png") +点击某一端口时,应做到可以修改端口的属性,包括:![输入图片说明](https://images.gitee.com/uploads/images/2021/0123/233219_b40e4d51_8607408.png "QQ截图20210123233154.png") +|端口名:要在矩形图上体现 +|输入输出类型:可以在input、output、inout中选![输入图片说明](https://images.gitee.com/uploads/images/2021/0123/233346_328b5e77_8607408.png "QQ截图20210123233330.png") +|数据类型:可以在wire、reg中选![输入图片说明](https://images.gitee.com/uploads/images/2021/0123/233408_06262ce9_8607408.png "QQ截图20210123233336.png") +|数据长度:可设置正整数值 +|颜色:此功能目前可先不做。。 +### ------------002------------ +双击模块矩形,可进入用户代码编辑界面 +此时用户只需要输入算法代码 如:assign c = a & b; +其他代码由软件自动生成。 +![输入图片说明](https://images.gitee.com/uploads/images/2021/0123/234049_deade8af_8607408.png "QQ截图20210123234037.png") +其中第一段的格式为module xxx[*](端口名); 如用户在最开始的对话框中填写模块名为123,且整个模块中所有的端口为a、b、c三个时 +软件将会生成module 123[*](a,b,c); + **第二段** 代码为:input/output/inout 端口名;例如用户设置a为input,b为output,c为inout。则代码为 +input a; output b; inout c; + **第三段** 代码为:端口数据类型 端口名;例如用户定义a端口为wire型,b、c端口为reg型,则: +wire a; reg b; reg c; +第四段代码为之前用户输入的算法代码 +最后是固定句式:endmodule 相当于这个模块结束了 +另外要注意:当端口的数据长度定义为i(正整数)时,相应的在上述 **第二段、第三段** 代码中要有所改变,在端口名前加[i-1:0] +例如:![输入图片说明](https://images.gitee.com/uploads/images/2021/0123/234717_374091e7_8607408.png "QQ截图20210123234621.png")用户定义了p0为3位 +![输入图片说明](https://images.gitee.com/uploads/images/2021/0123/234922_d18c6d0d_8607408.png "QQ截图20210123234626.png") ![输入图片说明](https://images.gitee.com/uploads/images/2021/0123/234930_6490091b_8607408.png "QQ截图20210123234630.png") +则p0前面加[2:0] +### ------------003------------ +应有“保存模块”和“生成代码”两个按钮。其中: +保存模块:做到将此次用户新建的模块里的所有内容打包保存 下次用户双击时可以直接在软件里打开 +生成代码:将软件生成的代码 让用户选择位置保存。保存为 **verilog目录** 目录下应有 **此模块及其内部子模块** 所有的verilog代码文件 **扩展名为.v** + + + + + + + + + diff --git a/src/eda_qt 1-24 2_06/eda_qt.pro.user b/src/eda_qt 1-24 2_06/eda_qt.pro.user index 3b57cffa115a7f8849962cfcfc88fd3742b2295e..5a3c13019379388821a0b4352ac7d90e84b11ceb 100644 --- a/src/eda_qt 1-24 2_06/eda_qt.pro.user +++ b/src/eda_qt 1-24 2_06/eda_qt.pro.user @@ -1,328 +1,328 @@ - - - - - - EnvironmentId - {d7319875-1e1d-4456-a97d-d87e35d07a5e} - - - ProjectExplorer.Project.ActiveTarget - 0 - - - ProjectExplorer.Project.EditorSettings - - true - false - true - - Cpp - - CppGlobal - - - - QmlJS - - QmlJSGlobal - - - 2 - UTF-8 - false - 4 - false - 80 - true - true - 1 - true - false - 0 - true - true - 0 - 8 - true - 1 - true - true - true - false - - - - ProjectExplorer.Project.PluginSettings - - - -fno-delayed-template-parsing - - true - - - - ProjectExplorer.Project.Target.0 - - Desktop Qt 5.12.1 MinGW 64-bit - Desktop Qt 5.12.1 MinGW 64-bit - qt.qt5.5121.win64_mingw73_kit - 0 - 0 - 0 - - F:/eda_dev/eda_qt/src/build-eda_qt-Desktop_Qt_5_12_1_MinGW_64_bit-Debug - - - true - qmake - - QtProjectManager.QMakeBuildStep - true - - false - false - false - - - true - Make - - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - - ProjectExplorer.BuildSteps.Build - - - - true - Make - - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Debug - Debug - Qt4ProjectManager.Qt4BuildConfiguration - 2 - true - - - F:/eda_dev/eda_qt/src/build-eda_qt-Desktop_Qt_5_12_1_MinGW_64_bit-Release - - - true - qmake - - QtProjectManager.QMakeBuildStep - false - - false - false - true - - - true - Make - - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - - ProjectExplorer.BuildSteps.Build - - - - true - Make - - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Release - Release - Qt4ProjectManager.Qt4BuildConfiguration - 0 - true - - - F:/eda_dev/eda_qt/src/build-eda_qt-Desktop_Qt_5_12_1_MinGW_64_bit-Profile - - - true - qmake - - QtProjectManager.QMakeBuildStep - true - - false - true - true - - - true - Make - - Qt4ProjectManager.MakeStep - - false - - - false - - 2 - Build - - ProjectExplorer.BuildSteps.Build - - - - true - Make - - Qt4ProjectManager.MakeStep - - true - clean - - false - - 1 - Clean - - ProjectExplorer.BuildSteps.Clean - - 2 - false - - Profile - Profile - Qt4ProjectManager.Qt4BuildConfiguration - 0 - true - - 3 - - - 0 - 部署 - - ProjectExplorer.BuildSteps.Deploy - - 1 - Deploy Configuration - - ProjectExplorer.DefaultDeployConfiguration - - 1 - - - false - false - 1000 - - true - - false - false - false - false - true - 0.01 - 10 - true - 1 - 25 - - 1 - true - false - true - valgrind - - 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - - 2 - - eda_qt - - Qt4ProjectManager.Qt4RunConfiguration:F:/eda_dev/eda_qt/src/eda_qt 1-24 2_06/eda_qt.pro - eda_qt.pro - - 3768 - false - true - true - false - false - true - - F:/eda_dev/eda_qt/src/build-eda_qt-Desktop_Qt_5_12_1_MinGW_64_bit-Debug - - 1 - - - - ProjectExplorer.Project.TargetCount - 1 - - - ProjectExplorer.Project.Updater.FileVersion - 20 - - - Version - 20 - - + + + + + + EnvironmentId + {d7319875-1e1d-4456-a97d-d87e35d07a5e} + + + ProjectExplorer.Project.ActiveTarget + 0 + + + ProjectExplorer.Project.EditorSettings + + true + false + true + + Cpp + + CppGlobal + + + + QmlJS + + QmlJSGlobal + + + 2 + UTF-8 + false + 4 + false + 80 + true + true + 1 + true + false + 0 + true + true + 0 + 8 + true + 1 + true + true + true + false + + + + ProjectExplorer.Project.PluginSettings + + + -fno-delayed-template-parsing + + true + + + + ProjectExplorer.Project.Target.0 + + Desktop Qt 5.12.1 MinGW 64-bit + Desktop Qt 5.12.1 MinGW 64-bit + qt.qt5.5121.win64_mingw73_kit + 0 + 0 + 0 + + F:/eda_dev/eda_qt/src/build-eda_qt-Desktop_Qt_5_12_1_MinGW_64_bit-Debug + + + true + qmake + + QtProjectManager.QMakeBuildStep + true + + false + false + false + + + true + Make + + Qt4ProjectManager.MakeStep + + false + + + false + + 2 + Build + + ProjectExplorer.BuildSteps.Build + + + + true + Make + + Qt4ProjectManager.MakeStep + + true + clean + + false + + 1 + Clean + + ProjectExplorer.BuildSteps.Clean + + 2 + false + + Debug + Debug + Qt4ProjectManager.Qt4BuildConfiguration + 2 + true + + + F:/eda_dev/eda_qt/src/build-eda_qt-Desktop_Qt_5_12_1_MinGW_64_bit-Release + + + true + qmake + + QtProjectManager.QMakeBuildStep + false + + false + false + true + + + true + Make + + Qt4ProjectManager.MakeStep + + false + + + false + + 2 + Build + + ProjectExplorer.BuildSteps.Build + + + + true + Make + + Qt4ProjectManager.MakeStep + + true + clean + + false + + 1 + Clean + + ProjectExplorer.BuildSteps.Clean + + 2 + false + + Release + Release + Qt4ProjectManager.Qt4BuildConfiguration + 0 + true + + + F:/eda_dev/eda_qt/src/build-eda_qt-Desktop_Qt_5_12_1_MinGW_64_bit-Profile + + + true + qmake + + QtProjectManager.QMakeBuildStep + true + + false + true + true + + + true + Make + + Qt4ProjectManager.MakeStep + + false + + + false + + 2 + Build + + ProjectExplorer.BuildSteps.Build + + + + true + Make + + Qt4ProjectManager.MakeStep + + true + clean + + false + + 1 + Clean + + ProjectExplorer.BuildSteps.Clean + + 2 + false + + Profile + Profile + Qt4ProjectManager.Qt4BuildConfiguration + 0 + true + + 3 + + + 0 + 部署 + + ProjectExplorer.BuildSteps.Deploy + + 1 + Deploy Configuration + + ProjectExplorer.DefaultDeployConfiguration + + 1 + + + false + false + 1000 + + true + + false + false + false + false + true + 0.01 + 10 + true + 1 + 25 + + 1 + true + false + true + valgrind + + 0 + 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + + 2 + + eda_qt + + Qt4ProjectManager.Qt4RunConfiguration:F:/eda_dev/eda_qt/src/eda_qt 1-24 2_06/eda_qt.pro + eda_qt.pro + + 3768 + false + true + true + false + false + true + + F:/eda_dev/eda_qt/src/build-eda_qt-Desktop_Qt_5_12_1_MinGW_64_bit-Debug + + 1 + + + + ProjectExplorer.Project.TargetCount + 1 + + + ProjectExplorer.Project.Updater.FileVersion + 20 + + + Version + 20 + + diff --git a/src/eda_qt 1-24 2_06/mainwindow.ui b/src/eda_qt 1-24 2_06/mainwindow.ui index f3cfa5fbc8f3158ba63406a7db93dca018167bfa..3a30ab5976520884453eb4b481d187d3e1c87bd9 100644 --- a/src/eda_qt 1-24 2_06/mainwindow.ui +++ b/src/eda_qt 1-24 2_06/mainwindow.ui @@ -1,266 +1,266 @@ - - - MainWindow - - - - 0 - 0 - 1056 - 672 - - - - MainWindow - - - - - 0 - 0 - - - - Qt::DefaultContextMenu - - - Qt::LeftToRight - - - - - - 2 - - - QLayout::SetMaximumSize - - - - - QLayout::SetMinimumSize - - - - - PushButton - - - - - - - PushButton - - - - - - - PushButton - - - - - - - PushButton - - - - - - - PushButton - - - - - - - PushButton - - - - - - - PushButton - - - - - - - PushButton - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - - - - 0 - 0 - - - - 1 - - - - - 0 - 0 - 83 - 312 - - - - Page 1 - - - - - - 0 - 0 - 83 - 312 - - - - Page 2 - - - - - - - - 0 - - - - Tab 1 - - - - - Tab 2 - - - - - - - - - 0 - 0 - - - - 1 - - - - - 0 - 0 - 83 - 312 - - - - Page 1 - - - - - - 0 - 0 - 83 - 312 - - - - Page 2 - - - - - - - - - - QLayout::SetDefaultConstraint - - - - - - 0 - 0 - - - - - - - - - - - - - - 0 - 0 - 1056 - 25 - - - - - File - - - - - - Edit - - - - - - - - - New - - - - - - + + + MainWindow + + + + 0 + 0 + 1056 + 672 + + + + MainWindow + + + + + 0 + 0 + + + + Qt::DefaultContextMenu + + + Qt::LeftToRight + + + + + + 2 + + + QLayout::SetMaximumSize + + + + + QLayout::SetMinimumSize + + + + + PushButton + + + + + + + PushButton + + + + + + + PushButton + + + + + + + PushButton + + + + + + + PushButton + + + + + + + PushButton + + + + + + + PushButton + + + + + + + PushButton + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + 0 + 0 + + + + 1 + + + + + 0 + 0 + 83 + 312 + + + + Page 1 + + + + + + 0 + 0 + 83 + 312 + + + + Page 2 + + + + + + + + 0 + + + + Tab 1 + + + + + Tab 2 + + + + + + + + + 0 + 0 + + + + 1 + + + + + 0 + 0 + 83 + 312 + + + + Page 1 + + + + + + 0 + 0 + 83 + 312 + + + + Page 2 + + + + + + + + + + QLayout::SetDefaultConstraint + + + + + + 0 + 0 + + + + + + + + + + + + + + 0 + 0 + 1056 + 25 + + + + + File + + + + + + Edit + + + + + + + + + New + + + + + + diff --git a/src/eda_qt 1-24 2_06/module.cpp b/src/eda_qt 1-24 2_06/module.cpp new file mode 100644 index 0000000000000000000000000000000000000000..5ea69e2bf50cf50832bea969452888631930a5e5 --- /dev/null +++ b/src/eda_qt 1-24 2_06/module.cpp @@ -0,0 +1,40 @@ +#include "module.h" +#include + +Module::Module() +{ + +} + +Module::Module(std::string name,int inputPorts,int outputPorts,int inOutPorts) +{ + this->name = name; + int portsNum = 0; + for(int i = 0;iports.push_back(Port("p"+std::to_string(portsNum),INPUT,0,1)); + } + for(int i = 0;iports.push_back(Port("p"+std::to_string(portsNum),OUTPUT,0,1)); + } + for(int i = 0;iports.push_back(Port("p"+std::to_string(portsNum),INOUT,0,1)); + } +} + +void Module::setCode(std::string code) +{ + this->code = code; +} + +std::string Module::getCode() +{ + return this->code; +} + +std::string Module::generateCode() +{ + +} diff --git a/src/eda_qt 1-24 2_06/module.h b/src/eda_qt 1-24 2_06/module.h new file mode 100644 index 0000000000000000000000000000000000000000..804962c32af8c06705d330163d9837656f9acd39 --- /dev/null +++ b/src/eda_qt 1-24 2_06/module.h @@ -0,0 +1,23 @@ +#ifndef MODULE_H +#define MODULE_H +#include +#include +#include "port.h" +class Module +{ +private: + std::string name; + int inputPorts; + int ouputPorts; + int inOutPorts; + std::string code; + std::vector ports; +public: + Module(); + Module(std::string,int,int,int); + void setCode(std::string); + std::string getCode(); + std::string generateCode(); +}; + +#endif // MODULE_H diff --git a/src/eda_qt 1-24 2_06/new_file.ui b/src/eda_qt 1-24 2_06/new_file.ui index 3eb6cd8586e8a6ff675a9e0585c598def16fca52..1a661d98dd9ade89b6fca25556b1b4a4ff1af88b 100644 --- a/src/eda_qt 1-24 2_06/new_file.ui +++ b/src/eda_qt 1-24 2_06/new_file.ui @@ -1,129 +1,129 @@ - - - new_file - - - - 0 - 0 - 373 - 406 - - - - Dialog - - - - - 20 - -10 - 341 - 371 - - - - - QLayout::SetDefaultConstraint - - - - - - - Module Name: - - - - - - - - - - - - - - Input Ports: - - - - - - - - - - - - - - Output Ports: - - - - - - - - - - - - - - Input Ports: - - - - - - - - - - - - - - 20 - 350 - 341 - 41 - - - - - - - Ok - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - Cancel - - - - - - - - - + + + new_file + + + + 0 + 0 + 373 + 406 + + + + Dialog + + + + + 20 + -10 + 341 + 371 + + + + + QLayout::SetDefaultConstraint + + + + + + + Module Name: + + + + + + + + + + + + + + Input Ports: + + + + + + + + + + + + + + Output Ports: + + + + + + + + + + + + + + Input Ports: + + + + + + + + + + + + + + 20 + 350 + 341 + 41 + + + + + + + Ok + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Cancel + + + + + + + + + diff --git a/src/eda_qt 1-24 2_06/port.cpp b/src/eda_qt 1-24 2_06/port.cpp new file mode 100644 index 0000000000000000000000000000000000000000..077830f65684e03a803808f82d0f513caf0729fb --- /dev/null +++ b/src/eda_qt 1-24 2_06/port.cpp @@ -0,0 +1,51 @@ +#include "port.h" + +Port::Port() +{ + +} + +Port::Port(std::string name,PortType portType,bool dataType,int dataSize) +{ + this->name = name; + this->portType = portType; + this->dataSize =dataSize; + this->dataType = dataType; +} + +void Port::setName(std::string name) +{ + this->name = name; +} + +std::string Port::getName() +{ + return this->name; +} + +void Port::setPortType(PortType portType) +{ + this->portType = portType; +} +PortType Port::getPortType() +{ + return this->portType; +} + +void Port::setDataType(bool dataType) +{ + this->dataType = dataType; +} +bool Port::getDataType() +{ + return this->dataType; +} + +void Port::setDataSize(int dataSize) +{ + this->dataSize = dataSize; +} +int Port::getDataSize() +{ + return this->dataSize; +} diff --git a/src/eda_qt 1-24 2_06/port.h b/src/eda_qt 1-24 2_06/port.h new file mode 100644 index 0000000000000000000000000000000000000000..813d0ec05b49df6180b9cb7d1dfbe42c317891f6 --- /dev/null +++ b/src/eda_qt 1-24 2_06/port.h @@ -0,0 +1,28 @@ +#ifndef PORT_H +#define PORT_H +#include + +enum PortType{INPUT,OUTPUT,INOUT}; + +class Port +{ +private: + std::string name; //端口名 + PortType portType; //输入或输出 0为in 1为out + bool dataType; //数据类型 0为wire 1为reg + int dataSize; //数据长度 +public: + Port(); + Port(std::string,PortType,bool,int); + void setName(std::string); + std::string getName(); + void setPortType(PortType); + PortType getPortType(); + void setDataType(bool); + bool getDataType(); + void setDataSize(int); + int getDataSize(); + +}; + +#endif // PORT_H