6.8 KiB
eda_qt
-介绍
eda软件开发
- 开发需求
------------001------------
用户可输入:模块名称、input端口数量、output端口数量、inout端口数量
点击ok后,将出现一“矩形图”,代表着该模块
上图是我们要开发的软件里用的矩形图
这是我们仿照的软件里的截图,模块名为123,input、output、inout都为1
点击某一端口时,应做到可以修改端口的属性,包括:
|端口名:要在矩形图上体现
|输入输出类型:可以在input、output、inout中选
|数据类型:可以在wire、reg中选
|数据长度:可设置正整数值
|颜色:此功能目前可先不做。。
------------002------------
双击模块矩形,可查看此模块所包含的子模块
此时用户只需要输入算法代码 如:assign c = a & b;
其他代码由软件自动生成。
其中第一段的格式为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]
例如:用户定义了p0为3位
则p0前面加[2:0]
------------003------------
应有“保存模块”和“生成代码”两个按钮。其中:
保存模块:做到将此次用户新建的模块里的所有内容打包保存 下次用户双击时可以直接在软件里打开
生成代码:将软件生成的代码 让用户选择位置保存。保存为 verilog目录 目录下应有 此模块及其内部子模块 所有的verilog代码文件 扩展名为.v
------------004------------
------------005------------
在上层模块下添加子模块 可用线将子模块的端口连接 并生成实例化代码
- 添加子模块
在左侧选中已有的模块后,在工作区的父模块中点击一下 可将左侧的模块作为子模块添加进去
如图,我在module1中添加了两个add作为子模块,软件自动命名为add1和add2
- 子模块之间连线
可在菜单栏的“连线”按钮进行两个子模块的端口之间的连线
注意:连线只能从output开始,input结束 。另有对 inout类型 的补充见 第4点
此时,数据线的名称为: 输出模块_输出端口 如图有两条线,分别是从 add1的CO、add2的S 输出
所以 信号线的名称分别为 add1_CO 、 add2_S
- 生成代码
下面是软件生成代码
- 补充
inout 类型的端口 既可以作为 输出 也可以作为 输入
即对于 inout 来说 有:
inout -------》input
output------》 inout
inout -------》 inout
------------006------------
New Constrain功能
点击New Constrain后,弹出一跟New Module 功能结构 一样的对话框
注意,实际上是和New Module的对话框区分开的,分别在菜单栏的New下
此时,工作区内生成的图型框与与New Module生成的几乎一致,都是由各种端口围绕在矩形周围,为与Module矩形区分,将其称为Constrain矩形
与 005 中生成子模块类似,在左侧选择已有的模块后,点击工作区的矩形图,将会把选中的Module置于Constrain矩形中。
用户可通过上面的工具栏中的 连线 工具 将Constrain的端口和Module端口连接,输入只能到输入,输出只能到输出。
然后将会自动生成 约束文件 的代码 如下(还暂未具体研究规则)
constrain保存后生成.const文件;生成的代码保存为.qsf文件。