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中equals()方法和==的区别
==与equals的主要区别是: ==: ==常用于比较原生类型(基本数据类型):byte,short,char,int,long,float,double,boolean,比较的是他们的值. 若用= ...
- python重新利用shodan API
前言: 之前写过一个shodan的API调用 感觉写的不这么好.然后现在重新写一个 shodan介绍: shodan是互联网上最可怕的搜索引擎. CNNMoney的一篇文章写道,虽然目前人们都认为谷歌 ...
- Xshell配置SSH秘钥登录
秘钥生成 生成公钥 工具 -> 新建用户秘钥生成向导 -> 下一步 -> 点击下一步,输入密码: 点击下一步 点击保存为文件,完成. 生成私钥 工具 -> 用户秘钥管理者 选中 ...
- nf共享
实验环境是两台Centos6.8 客户端是192.168.3.218 服务端是192.168.3.219 首先配置服务端 1 安装包 用yum安装需要的服务包(两边都安装) yum install n ...
- 前端小白的gulp入门
gulp新手入门 全局安装 cnpm install -g gulp 本地安装cnpm install gulp -D 如果项目没有package.json,记得npm init 安装插件cnpm i ...
- Android查缺补漏(IPC篇)-- Bundle、文件共享、ContentProvider、Messenger四种进程间通讯介绍
本文作者:CodingBlock 文章链接:http://www.cnblogs.com/codingblock/p/8387752.html 进程间通讯篇系列文章目录: Android查缺补漏(IP ...
- jquery序列化serialize()方法空格变为+问题解决参考方法
$("#sendNoticeData-form").serialize();会在value中存在空格的地方转化为+符合.比如:name:tiwax aaa序列化后为tiwax+aa ...
- 将Word表格中单元格中的文字替换成对应的图片
示例 原文件结构: 替换后文档结构: 软件截图: 代码: using System;using System.Collections.Generic;using System.ComponentMod ...
- 吾八哥学Selenium(二):操作输入框/按钮的方法
一个web页面一定少不了输入框或者按钮这两种元素,那么在Python里如何使用Selenium操作web页面里的输入框和按钮呢?本文带你简单入门. 本文采用了一个例子,就是利用Selenium打开百度 ...
- 胖虎都看得懂的CSS入门
CSS入门 CSS是什么 摘自维基百科 层叠样式表(英语:Cascading Style Sheets,简写CSS),又称串样式列表.级联样式表.串接样式表.层叠样式表.階層式樣式表,一种用来为结构化 ...