⑴ 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-_