⑴ SV强制类型转换和常数
静态转换有三种,分别是数据类型强制转换、向量宽度强制转换和符号强制转换,格式分别为:
静态强制转换是编译时的转换,转换的操作总会运行, 而不会检查结果的有效性
下面对数据类型强制转换和向量宽度强制转换做了仿真:
仿真结果如下:
系统函数 $cast 是动态的,并且 在运行时进行带转换数值的检查
动态强制类型转换的格式为: $cast(dest_var, source_var); ,系统函数 $cast 有两个变量:目标变量和源变量
下面几种情况会导致无效的强制类型转换:
$cast可以作为任务调用也可以作为函数调用,作为任务调用时,如果转换不成功, 会报告运行时错误 ,但作为函数调用时, 不会报告运行时错误
系统函数$cast具有返回值,如果转换成功,返回 1 ;转换失败,返回 0
例如:
$cast函数不能和直接修改源表达式的操作符(++, +=)一块用
$cast函数主要用途是将表达式的结果赋给枚举类型变量
静态强制转换是可综合的,动态强制转换由于一些综合工具可能不支持$cast系统函数
系统函数和系统任务都是不可综合的
下面这个例子,将 0.25*8 动态装换成 int 类型,并通过系统函数 $cast 判断转换是否成功
仿真结果如下:
Verilog提供了三种常数类型 parameter 、 specparam 和 localparam
确立 实质上是软件工具建立模块实例代表的设计层次的过程
Verilog限制 parameter 、 specparam 和 localparam 常数的声明只能在模块、静态任务和静态函数中, 不允许在动态任务和动态函数中
关键字const 允许将任何变量声明为常数,const形式的常数直到确立完成后才被赋值
const常数的使用范围:
const常数的声明必须包含数据类型,例如:
const常数实质上是一个只能被初始化的变量
本文摘在《SystemVerilog硬件设计与建模》
⑵ asp反编译出乱码都会有什么原因
网页出现乱码主要是因为几个地方声明的网页编码不一致引起的。
.
涉及网页编码有几个地方:
1、页面开头的 CODEPAGE
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
2、meta标签
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
3、文件保存时使用的编码
.
下面以常用的两种编码 gb2312 和 utf8 进行说明:
CODEPAGE中的编码:
utf8编码
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
gb2312编码
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
meta标签中的编码:
utf8编码
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
gb2312编码
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
文件保存时使用的编码:
用记事本打开文件,选择“文件 - 另存为”,在对话框中选择编码,如图:
utf8编码:请选择UTF8
gb2312编码:请选择ANSI
除了上面三个地方要使用统一编码外,还有一点需要注意:
中文一定要出现在meta编码声明之后
来源http://www.33dir.com/z/2016/02/24/222.html
⑶ VCS编译命令
等license
使能verilog2000的标准
统一所有的timescale
-f采用绝对路径;-F与-f类似,也可以采用绝对路径,同时也支持相对路径,但不允许嵌套使用。
VCS用-F解析filelist时,不允许文件嵌套使用,不支持`include “xxx.v”这种写法,改为-f便ok了。
`include "xxx.sv"
要用+incdir把xxx.sv的路径指明。
编译完成后,自动执行当前编译生成的可执行文件
初始化RTL中所有mem的所有bit初始值
初始化RTL中所有reg的所有bit初始值
-的一般是编译时用的,编译工具自带的。
+的是插件,环境,验证语言,等等加的,可扩展的,自定义的。
+libext+.v
-y XXX/memory/all/work/verilog 定义verilog的库
-f rtl_top.f
-f env.f
testbench的顶层mole名字是top, 收集top下的例化的rtl顶层模块的下面所有层的覆盖率
如果用到了dw的东西
一般加上选项
-y $DC_HOME/dw/sim_ver +incdir+$DC_HOME/dw/sim_ver +libext+.v
⑷ SystemVerilog $unit 编译单元介绍
SV中增加了编译单元的概念,就是 SV源文件编译的时候,一起编译的所有源文件
编译单元域在搜索顺序中排第三位
举个栗子
这里我们创建了两个包(a_dpk和b_dpk),两个包中的都只有一个打印函数,同时mole中也有一个打印函数,(打印函数用于指示所在位置)
打印结果如下:
image-20211216201944989
运行结果如下:
可以看到此时打印的是在mole中导入的包
那么接下来我们把在mole中导入的包注释掉,即把 import a_dpk::*; 注释掉
下面运行结果:
此时终于把导入$unit编译单元域的内容打印出来了
这也就是为什么 编译单元域在搜索规则中排第三
那么为什么编译单元域叫 $unit 呢?我们可以再把代码更改一下
我们把 b_dpk 注释掉,但依旧将其导入,看看运行结果
这里直接显示错误在 $unit ,或许$unit只是一个名称,就好像上例中mole命名为 test_tb 一样
格式为:
这是C语言中常用的技巧,如果第一次遇到导入语句将其编译到$unit中,再次出现则不会编译
下面我们将上篇笔记中的包用这种方式仿真一下,先给出上篇笔记中包的内容
我们将文件名命名为 definitions.dpk ,其中后缀 .dpk 是随便起的
下面是源码和测试文件
运行结果如下
本文主要参考
⑸ 如何对web.config进行加密和解密
在WEB网站开发过程中,如果我们将数据库连接字符串封装到.DLL文件中,将会给数据库和程序的迁移带来麻烦,因为万一服务器地址或
者数据库发生变更,那么我们就不得不修改源程序并重新将其编译。更好的解决方法是将数据库连接字符串写入到web.config配置文件中,可问题是将连
接字符串写入到web.config文件中之后,任何人都能打开看到所连接的数据库名和密码,又会带来安全隐患,因此为了保证数据库的安全性,我们可以通
过使用微软IDE自带的命令aspnet_regiis.exe将配置文件web.config中指定的标签进行加密,如果以后想查看加密后的连接字符
串,我们还可以使用aspnet_regiis.exe将加密后的字符串进行解密。
1. 加密通用语法
加密一个特定网站的web.config文件的通用形式
aspnet_regiis.exe -pef secion physical_directory -prov provider
或
aspnet_regiis.exe -pe secion -app virtual_directory -prov provider
其中,各个参数的含义如下:
section表示要加密的配置节
physical_directory用于指定站点的物理路径。
virtual_directory用户指定虚拟路径。
provider指定加密提供程序。
加密一个特定站点的连接字符串就是:
aspnet_regiis.exe -pef "connectionStrings" "你的web项目路径" -prov ""
其中是Windows数据保护API(DPAPI)提供程序,它使用Windows内置的密码学技术来加解密配置节。默认情况下,这个提供程序使用本机的密钥。
2. 加密方法
运行Visual Studio 2008命令提示
加密后的结果
<connectionStrings configProtectionProvider="">
<EncryptedData>
<CipherData> <CipherValue>AQAAANCMnd8BFdERjHoAwE/Cl+sBAAAAy1WyvzomB0WAlqYo++bAce//lsg/so66+//LD9H9WQ9uF3t/0MoMI9tbrWdFJ1Yu5/e3PAV4RCbCvDlPD0VC7hxtDMqfRjQ+1OhTdk2woiSNpx0TzXwZE25o4vlXq/+lZtAj8lzf2bK+/L0+6bizStRZ7BDnOngV//CVDQ==</CipherValue>
</CipherData>
</EncryptedData>
lt;/connectionStrings>
3. 解密
解密该连接字符串也很简单
aspnet_regiis.exe -pdf "connectionStrings" '你的web项目路径"
解密后的结果:
<connectionStrings>
<add name="Sql" connectionString="Data Source=.;Initial Catalog=MySchool;Integrated Security=True" />
</connectionStrings>
4. 后台代码读取配置文件web.config中数据库连接字符串的方法:
using System.Configuation;
…
protected void Page_Load(object sender, EventArgs e)
{
lblMessage.Text = ConfigurationManager.ConnectionStrings["Sql"].ToString();
}
…
5. 在连接字符串的加密和解密的过程中,需要注意一下几点。
使用加密的连接字符串
使用加密的连接字符串不需要编码解密,ASP.NET会自动对加密内容进行解密。
加密和解密在同一台计算机上使用
在加密过程中,使用了一个基于本机的密钥。这就意味着加密和解密必须在同一台计算机上进行,否则将不能解密。同时,在一台计算机上加密的配置,在另一台计算机上将不能正常使用。
中文路径问题
该命令对中文支持不是很好。如果站点的路径中有中文字符,也许不能正常加解密。
⑹ asp文件被加密了, 谁知道怎么解密
请参阅
ASP程序加密解密方法全面解析
http://wenku..com/link?url=WP0OGrtMg8Osfz_iLtu_d-_