Link带参数的Verilog模块(Design Compiler)
在Design Compiler中,Verilog文件可以用read_verilog命令读入,用link命令连接。以下是连接两个文件RegisterFile.v和Test.v的脚本:
# Read design files
file mkdir ./work
define_design_lib WORK -path ./work
read_verilog {RegisterFile.v Test.v}
current_design Test
link
其中define_design_lib指定中间文件存放到work目录,否则默认会存放到当前目录,文件多了看起来比较混乱。另外,建议使用current_design命令显式指定当前模块。
如果没有使用参数(Parameter),这个脚本工作的很好,但是一旦在例化模块时指定了参数值,则会出错:
Information: Building the design 'RegisterFile' instantiated from design 'Test' with
the parameters "2,1". (HDL-193)
Warning: Cannot find the design 'RegisterFile' in the library 'WORK'. (LBR-1)
Warning: Unable to resolve reference 'RegisterFile' in 'Test'. (LINK-5)
0
查看前面的信息也会发现,实际上模块是使用默认参数例化的,所以连接时找不到被例化模块的实现:
Inferred memory devices in process
in routine RegisterFile line 21 in file
'./rtl/RegisterFile.v'.
===============================================================================
| Register Name | Type | Width | Bus | MB | AR | AS | SR | SS | ST |
===============================================================================
| RegArray_reg | Flip-flop | 1024 | Y | N | N | N | N | N | N |
=============================================================================== Inferred memory devices in process
in routine RegisterFile line 33 in file
'./rtl/RegisterFile.v'.
=================================================================================
| Register Name | Type | Width | Bus | MB | AR | AS | SR | SS | ST |
=================================================================================
| LatchedReadAddr_1_reg | Flip-flop | 5 | Y | N | N | N | N | N | N |
| LatchedReadAddr_2_reg | Flip-flop | 5 | Y | N | N | N | N | N | N |
=================================================================================
那么,使用了带参数的模块,就要使用analyze和elaborate命令连接,脚本如下:
# Read design files
file mkdir ./work
define_design_lib WORK -path ./work
analyze -format verilog {RegisterFile.v Test.v}
elaborate Test
现在查看输出信息,就会发现确实是按照例化时指定的参数编译模块的,并且连接成功了:
Inferred memory devices in process
in routine RegisterFile_W_DATA2_W_ADDR1 line 21 in file
'./rtl/RegisterFile.v'.
===============================================================================
| Register Name | Type | Width | Bus | MB | AR | AS | SR | SS | ST |
===============================================================================
| RegArray_reg | Flip-flop | 4 | Y | N | N | N | N | N | N |
=============================================================================== Inferred memory devices in process
in routine RegisterFile_W_DATA2_W_ADDR1 line 33 in file
'./rtl/RegisterFile.v'.
=================================================================================
| Register Name | Type | Width | Bus | MB | AR | AS | SR | SS | ST |
=================================================================================
| LatchedReadAddr_1_reg | Flip-flop | 1 | N | N | N | N | N | N | N |
| LatchedReadAddr_2_reg | Flip-flop | 1 | N | N | N | N | N | N | N |
=================================================================================
Presto compilation completed successfully.
1
本文使用的源文件和脚本文件:下载
Link带参数的Verilog模块(Design Compiler)的更多相关文章
- react-踩坑记录——Link带参数跳转后this.props为空对象
原因,自组件在挂载时,父组件没向其传props划线部分不可缺少!!!!!!
- Tcl与Design Compiler (五)——综合库(时序库)和DC的设计对象
本文如果有错,欢迎留言更正:此外,转载请标明出处 http://www.cnblogs.com/IClearner/ ,作者:IC_learner 前面一直说到综合库/工艺库这些东西,现在就来讲讲讲 ...
- Tcl与Design Compiler (八)——DC的逻辑综合与优化
本文属于原创手打(有参考文献),如果有错,欢迎留言更正:此外,转载请标明出处 http://www.cnblogs.com/IClearner/ ,作者:IC_learner 对进行时序路径.工作环 ...
- Tcl与Design Compiler (十三)——Design Compliler中常用到的命令(示例)总结
本文如果有错,欢迎留言更正:此外,转载请标明出处 http://www.cnblogs.com/IClearner/ ,作者:IC_learner 本文将描述在Design Compliler中常用 ...
- Tcl与Design Compiler (二)——DC综合与Tcl语法结构概述
1.逻辑综合的概述 synthesis = translation + logic optimization + gate mapping . DC工作流程主要分为这三步 Translation : ...
- Tcl与Design Compiler (七)——环境、设计规则和面积约束
本文属于原创手打(有参考文献),如果有错,欢迎留言更正:此外,转载请标明出处 http://www.cnblogs.com/IClearner/ ,作者:IC_learner 本文的主要内容是讲解( ...
- Tcl与Design Compiler (十一)——其他的时序约束选项(二)
本文如果有错,欢迎留言更正:此外,转载请标明出处 http://www.cnblogs.com/IClearner/ ,作者:IC_learner 前面介绍的设计都不算很复杂,都是使用时钟的默认行为 ...
- Tcl与Design Compiler (十二)——综合后处理
本文如果有错,欢迎留言更正:此外,转载请标明出处 http://www.cnblogs.com/IClearner/ ,作者:IC_learner 概述 前面也讲了一些综合后的需要进行的一些工作,这 ...
- Design Compiler 综合
综合(synthesis) = 转换(translation) + 优化(logic optimization) + 映射(gate mapping): 转换阶段将HDL语言描述的电路用门级逻辑实现. ...
随机推荐
- Java的一些良好习惯及细节------持续更新中...
1.在做条件判断时,不要将变量放在判断符的左边,这样做可以防止出现空指针异常,以字符串比较为例: String name = "Tom"; //这种方式不推荐,如果变量name为空 ...
- laravel服务容器-----深入理解控制反转(IoC)和依赖注入(DI)
首先大家想一想什么是容器,字面意思就是盛放东西的东西,常见的变量,对象属性都是容器,一个容器能够装什么东西,完全在于你对这个容器的定义.有的容器不仅仅只是存文本,变量,而是对象,属性,那么我们通过这种 ...
- word设置每页50行
1. 显示行号:页面布局-行号-每页重编行号 2. 调整页边距:页面布局-页边距-调整上下边距为2 3. 调整行数:页面布局-文档网格-只指定网格-设置行数
- CENTOS6.6上搭建单实例ORACLE12C
本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn 摘要: 自己在centos6.6上搭建的单实例oracle12c 由 ...
- Selenium常用方法及函数、txt参数化
常用方法及函数: 1.表单的提交方法:submit解释:查找到表单(from)直接调用submit即可实例:driver.find_element_by_id("form1").s ...
- appium+Python 启动app(三)登录
我们根据前面的知识点,用uiautomatorviewer工具来获取我们当前的元素 (注:uiautomatorviewer 是 android sdk 自带的) 知识点:appium的webdriv ...
- lasy load图片的实现
无意中看到了这篇关于使用LQIP(Low Quality Image Placeholders) 原文链接,方案实现图片加载优化方案.在此实践一把. 1. 方案实现 页面初始化时,img元素初始化时, ...
- nginx虚拟域名的配置以及测试验证
1.保证该机器上安装了nginx 未安装请看:centos/linux下的安装Nginx 2.使用root用户编辑配置文件 vim /usr/local/nginx/conf/nginx.conf 3 ...
- iOS 点击屏幕空白区隐藏键盘方法
iOS开发中,经常要用到输入框,可默认情况下,输入框出来之后,除非点击键盘上面的“Done”或“Next”按钮才能将其隐藏.站在用户体验的角度上看,这种情况很不友好,尤其是不能突显苹果操作的便捷性. ...
- SharedPreferences封装类
最近一直在读马伟奇老师的简书,给人以不一样的感觉,接下来的时间会做做笔记,毕竟好东西变成自己的才有用 原文地址SharedPreferencesUtils 依赖 dependencies { comp ...