veriloga要怎么在candence中编译和加密?

从编译器的角度来说,我在ADS中可能就是直接用notepad编写,然后生成检查,它会有提示成功或报错的信息。但是对比下来,我发现candence的编译器更加方便编写va,所以把运行成功的步骤记录下来,防止遗忘。

首先,在libManager界面create new cell,选择veriloga;也可以选择asm

复制这段opamp定义的代码

`include "discipline.h"
`include "constants.h"

// $Date: 1997/08/28 05:45:21 $
// $Revision: 1.1 $
//
//
// Based on the OVI Verilog-A Language Reference Manual, version 1.0 1996
//
//
 
`define PI  	3.14159265358979323846264338327950288419716939937511



//--------------------
// opamp
//
// -  operational amplifier
//
// vin_p,vin_n:	differential input voltage [V,A]
// vout:	output voltage [V,A]
// vref:	reference voltage [V,A]
// vspply_p:	positive supply voltage [V,A]
// vspply_n:	negative supply voltage [V,A]
//
// INSTANCE parameters
//    gain           = gain []
//    freq_unitygain = unity gain frequency [Hz]
//    rin            = input resistance [Ohms]
//    vin_offset     = input offset voltage referred to negative [V]
//    ibias          = input current [A]
//    iin_max           = maximum current [A]
//    slew_rate      = slew rate [A/F]
//    rout           = output resistance [Ohms]
//    vsoft          = soft output limiting value [V]
//
// MODEL parameters
//    {none}
//

module opamp(vout, vref, vin_p, vin_n, vspply_p, vspply_n);
input vref, vspply_p, vspply_n;
inout vout, vin_p, vin_n;
electrical vout, vref, vin_p, vin_n, vspply_p, vspply_n;
parameter real gain = 835e3;
parameter real freq_unitygain  = 1.0e6;
parameter real rin = 1e6;
parameter real vin_offset = 0.0;
parameter real ibias = 0.0;
parameter real iin_max = 100e-6;
parameter real slew_rate = 0.5e6;
parameter real rout = 80;
parameter real vsoft = 0.5;
   real c1;
   real gm_nom;
   real r1;
   real vmax_in;
   real vin_val;

   electrical cout;

 
   analog begin

      @ ( initial_step or initial_step("dc") ) begin
	 c1 = iin_max/(slew_rate);
	 gm_nom = 2 * `PI * freq_unitygain * c1;
	 r1 = gain/gm_nom;
	 vmax_in = iin_max/gm_nom;
      end
 
      vin_val = V(vin_p,vin_n) + vin_offset;

      //
      // Input stage.
      //
      I(vin_p, vin_n) <+ (V(vin_p, vin_n) + vin_offset)/ rin;
      I(vref, vin_p) <+ ibias;
      I(vref, vin_n) <+ ibias;

      //
      // GM stage with slewing
      //
      I(vref, cout) <+ V(vref, cout)/100e6;

      if (vin_val > vmax_in)
         I(vref, cout) <+ iin_max;
      else if (vin_val < -vmax_in)
         I(vref, cout) <+ -iin_max;
      else 
         I(vref, cout) <+ gm_nom*vin_val ;

      //
      // Dominant Pole.
      //
      I(cout, vref) <+ ddt(c1*V(cout, vref));
      I(cout, vref) <+ V(cout, vref)/r1;

      //
      // Output Stage.
      //
      I(vref, vout) <+ V(cout, vref)/rout;
      I(vout, vref) <+ V(vout, vref)/rout;

      //
      // Soft Output Limiting.
      //
      if (V(vout) > (V(vspply_p) - vsoft))
         I(cout, vref) <+ gm_nom*(V(vout, vspply_p)+vsoft);
      else if (V(vout) < (V(vspply_n) + vsoft))
         I(cout, vref) <+ gm_nom*(V(vout, vspply_n)-vsoft); 
   end
endmodule





黏贴到Text Editor中,选择保存和生成这两个按钮

如果编译成功,则会跳出pin脚设置界面,如果有错误可以查看AHDL Linter Log File文件。

在引用测试的时候,把va参数开启,在仿真的时候需要把va的仿真器兼容进去。

此时va代码已经生成了,需要去对应的lib库路径底下编译va文件

进入va文件夹,找到verilog.asm文件,然后

ncprotect -extension vap -language vlog -autoprotect verilog.vams

那么就会生成一份文件,verilog.vams.vap这个文件是编译过的,删除.vap就可以使用了。

编译的具体指令可以参考

ncverilog -help
ncprotect -help

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/786030.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024.7.9.小组汇报postman分享会

文章目录 一、前言&#xff08;一&#xff09;界面导航说明&#xff08;二&#xff09;发送第一个请求 二、基本功能&#xff08;一&#xff09;常见类型的接口请求(常见的接口有如下四种类型&#xff1a;1.查询参数的接口请求2.表单类型的接口请求3.上传文件的表单请求4.JSON …

关于MySQL mvcc

innodb mvcc mvcc 多版本并发控制 在RR isolution 情况下 trx在启动的时候就拍了个快照。这个快照是基于整个数据库的。 其实这个快照并不是说拷贝整个数据库。并不是说要拷贝出这100个G的数据。 innodb里面每个trx有一个唯一的trxID 叫做trx id .在trx 开始的时候向innodb系…

java基础01—根据源码分析128陷阱以及如何避免128陷阱

源码分析128陷阱 如上图所示&#xff0c;int类型数据超过127依旧能正常比较&#xff0c;但Integer类型就无法正确比较了 /*** Cache to support the object identity semantics of autoboxing for values between* -128 and 127 (inclusive) as required by JLS.** The cache …

C++内存的一些知识点

一、内存分区 在C中&#xff0c;内存主要分为以下几个区域&#xff1a; 代码区&#xff1a;存放函数体的二进制代码。 全局/静态存储区&#xff1a;存放全局变量和静态变量&#xff0c;这些变量在程序的整个运行期间都存在。常量存储区&#xff1a;存放常量&#xff0c;这些值…

新加坡工作和生活指北:教育篇

文章首发于公众号&#xff1a;Keegan小钢 新加坡的基础教育在东南亚处于领先地位&#xff0c;这点基本是人尽皆知&#xff0c;但很多人对其教育体系只是一知半解&#xff0c;今日我们就来深入了解一下。 新加坡的学校主要分为三大类&#xff1a;政府学校、国际学校、私立学校。…

谷歌上新!最强开源模型Gemma 2,27B媲美LLaMA3 70B,挑战3140亿Grok-1

文章目录 LMSYS Chatbot Arena&#xff1a;开源模型性能第一Gemma为什么这么强&#xff1f;架构创新对AI安全性的提升 A领域竞争激烈&#xff0c;GPT-4o 和 Claude 3.5 Sonnet 持续发力&#xff0c;谷歌迅速跟进。 谷歌为应对AI竞争所采取的策略&#xff1a;依靠 Gemini 闭源模…

STM32F446RE实现多通道ADC转换功能实现(DMA)

目录 概述 1 软硬件介绍 1.1 软件版本 1.2 ADC引脚介绍 2 STM32Cube配置项目 2.1 配置基本参数 2.2 ADC通道配置 2.3 DMA通道配置 3 项目代码介绍 3.1 自生成代码 3.2 ADC-DMA初始化 3.3 测试函数 3.4 ADC1、ADC2、ADC3轮询采集数据存贮格式 4 测试 源代码下载地…

抖音本地生活火爆!普通人如何申请抖音本地生活服务商?

当前&#xff0c;随着抖音外卖的正式开放&#xff0c;抖音本地生活的热度也迎来了新的高潮&#xff0c;与抖音本地生活服务商怎么申请等话题相关的词条更是成为了多个创业者社群的热搜榜单的常客。 事实上&#xff0c;就抖音本地生活服务商怎么申请等问题本身而言&#xff0c;…

ITK-Canny边缘检测

作者&#xff1a;翟天保Steven 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 Canny边缘检测原理 Canny边缘检测是一种多步骤的图像处理算法&#xff0c;用于提取图像中的边缘&#xff0c;被广泛认为是边缘检…

名企面试必问30题(二十七)——你能为公司带来什么呢?

回答一&#xff1a; “首先&#xff0c;我具备扎实的软件测试专业知识和丰富的实践经验。我能够运用各种测试方法和工具&#xff0c;确保公司产品的质量&#xff0c;降低产品上线后的风险。 其次&#xff0c;我善于发现问题和解决问题。在测试过程中&#xff0c;我不仅能找出软…

墨西哥:海外新闻稿媒体分发-海外pr发稿干货分享-大舍传媒

大舍传媒&#xff1a;海外新闻稿媒体分发平台 墨西哥观查者 (mexicoviewer) 墨西哥观查者是墨西哥一家知名的新闻媒体平台&#xff0c;该平台专注于报道墨西哥国内外的时事新闻、政治、经济、文化等多个领域的内容。其更新速度快&#xff0c;报道对象广泛&#xff0c;深受墨西…

快团团开团大团长和帮卖团长如何合并“收件人信息相同的订单”核销打印?

快团团开团大团长和帮卖团长如何合并“收件人信息相同的订单”核销打印&#xff1f; 一、背景 经营方式为线下自提等无需快递的团长&#xff0c;在核销打印订单时&#xff0c;需要将“收件人信息相同的订单”合并核销打印 二、操作说明 第一步&#xff0c;团长电脑端登陆快…

streamlit table转置显示

streamlit table转置显示,并且原始的表头放在最左侧 原始表格 代码 import streamlit as st import pandas as pd# 创建一个示例 DataFrame data {Column1: [1, 2, 3],Column2: [4, 5, 6],Column3: [7, 8, 9] } df pd.DataFrame(data)# 转置 DataFrame transposed_df df.T…

W外链怎么样,他们家的短网址免费的吗?

W外链作为短网址服务的一种&#xff0c;体现了短网址技术的现代发展趋势&#xff0c;它不仅提供了基础的网址缩短功能&#xff0c;还扩展了一系列高级特性和增值服务&#xff0c;以适应更广泛的市场需求。根据相关参考内容&#xff0c;W外链具有以下特点和优势&#xff1a; 短域…

Text Control 控件教程:在 .NET 中打印 MS Word DOCX 文档

虽然有用于创建 DOCX 文件的库&#xff08;例如 Open XML SDK&#xff09;&#xff0c;但打印又是另一回事。打印 DOCX 文件的唯一方法是在 Microsoft Word 中打开它并手动打印。对于需要打印大量文档的 Web 应用程序或需要自动打印文档的服务器端应用程序来说&#xff0c;这不…

将直流电转换为交流电:逆变器的基本原理

什么是逆变器&#xff1f; 大多数电源设计都包括一个称为整流器的部分&#xff0c;该整流器将输入的交流波转换为不稳定的直流电压。但是&#xff0c;我们不能总是依赖来自建筑物主电源的交流输入到我们的系统中。 逆变器是一种将直流电 &#xff08;DC&#xff09; 转换为交…

前端八股文 跨域

前端跨域和常见解决方案 一、什么是跨域 同源策略是一个重要的安全策略&#xff0c;它用于限制一个origin的文档或者它加载的脚本如何能与另一个源的 资源进行交互。它能帮助阻隔恶意文档&#xff0c;减少可能被攻击的媒介。 有一点必须要注意&#xff1a;跨域并不是请求发不…

青岛外贸建站公司wordpress网站模板

电子数码wordpress网站模板 电子数码wordpress网站模板&#xff0c;做数码电子的生产厂家或外贸公司官方网站模板。 https://www.jianzhanpress.com/?p3161 金属不锈钢wordpress外贸主题 适合从事金属不锈钢生产、加式或做外贸的公司&#xff0c;简洁wordpress外贸主题模板…

【粉丝福利 | 第8期】值得收藏!推荐10个好用的数据血缘工具

⛳️ 写在前面参与规则&#xff01;&#xff01;&#xff01; ✅参与方式&#xff1a;关注博主、点赞、收藏、评论&#xff0c;任意评论&#xff08;每人最多评论三次&#xff09; ⛳️本次送书1~4本【取决于阅读量&#xff0c;阅读量越多&#xff0c;送的越多】 目前市面上绝…

微信公众平台、公众号、小程序联动

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 &#x1f38f;&#xff1a;你只管努力&#xff0c;剩下的交给时间 &#x1f3e0; &#xff1a;小破站 微信公众平台、公众号、小程序联动 如何通过unionid获取到微信公众openid如何根据code获取微信公…