1忆植、環(huán)境變量PATH
程序是由操作系統(tǒng)執(zhí)行 是吧!要執(zhí)行程序,你的找到它吧朝刊,這就是 PATH 環(huán)境變量做的事耀里。
比如 win下PATH中的路徑,是指在DOS下拾氓,你可以直接輸入一個(gè)可執(zhí)行文件的名字冯挎,它就能就行了。否則痪枫,就要先 cd 到那個(gè)可執(zhí)行文件所在的目錄下织堂,之后才能在DOS直接輸入名字運(yùn)行。
2奶陈、$readmemh readmemb
$readmemb ("<數(shù)據(jù)文件名>",<存貯器名>,<起始地址>,<結(jié)束地址>)
$readmemb("<數(shù)據(jù)文件名>",<存貯器名>
下面舉例說(shuō)明: 先定義一個(gè)有256個(gè)地址的字節(jié)存貯器
mem: reg[7:0] mem[1:256];
下面給出的系統(tǒng)任務(wù)以各自不同的方式裝載數(shù)據(jù)到存貯器mem中。
initial $readmemh("mem.data",mem);
initial $readmemh("mem.data",mem,16);
initial $readmemh("mem.data",mem,128,1);
第一條語(yǔ)句在仿真時(shí)刻為0時(shí)附较,將裝載數(shù)據(jù)到以地址是1的存貯器單元為起始存放單元的存貯器中去吃粒。
第二條語(yǔ)句將裝載數(shù)據(jù)到以單元地址是16的存貯器單元為起始存放單元的存貯器中去,一直到地址是256的單元為止拒课。
第三條語(yǔ)句將從地址是128的單元開(kāi)始裝載數(shù)據(jù)徐勃,一直到地址為1的單元。在第三種情況中早像,當(dāng)裝載完畢僻肖,系統(tǒng)要檢查在數(shù)據(jù)文件里是否有128個(gè)數(shù)據(jù),如果沒(méi)有卢鹦,系統(tǒng)將提示錯(cuò)誤信息臀脏。
文件可以包含顯式的地址形式。
形式一
11001
11010
形式二:對(duì)指定地址進(jìn)行賦值(地址是十六進(jìn)制的數(shù))
@hex_address value
@5 11001000 // 將11001存入mem[5]
@2 11010000 //將11010存入mem[2]
@5 //以直至5開(kāi)始
11001000
00000000
111111111
在這種情況下冀自,值被讀入存儲(chǔ)器指定的地址揉稚。
命名規(guī)則:reg[n-1:0] 存儲(chǔ)器名[m-1:0]
說(shuō)明:這是m個(gè)n位的存儲(chǔ)器,該存儲(chǔ)器的地址范圍是0-(m-1)
舉例:reg[3:0] memo[255:0]
說(shuō)明:這是256個(gè)4位存儲(chǔ)器熬粗,該存儲(chǔ)器地址范圍是0-255
賦值:memo[200] = 4'b1010;
說(shuō)明:給第200地址單元賦值4'b1010搀玖;
精確到位:memo[56][2]
說(shuō)明:第56地址的第2位數(shù)據(jù)
賦值:wire data=memo[56][1];
說(shuō)明:把memo中第56地址的第1位數(shù)據(jù)賦值給data;
integer類(lèi)型也是一種寄存器數(shù)據(jù)類(lèi)型驻呐,integer類(lèi)型的變量為有符號(hào)數(shù)灌诅,而reg類(lèi)型的變量則為無(wú)符號(hào)數(shù),除非特別聲明為有符號(hào)數(shù)含末,還有就是integer的位寬為宿主機(jī)的字的位數(shù)猜拾,但最小為32位,用integer的變量都可以用reg定義答渔,只是對(duì)于用于計(jì)數(shù)更方便而已关带。reg,integer,real,time都是寄存器數(shù)據(jù)類(lèi)型,定義在Verilog中用來(lái)保存數(shù)值的變量宋雏,和實(shí)際的硬件電路中的寄存器有區(qū)別
今天看代碼時(shí)遇到了integer芜飘,只知道這是個(gè)整數(shù)類(lèi)型,可詳細(xì)的內(nèi)容卻一竅不通磨总,查看了資料---《verilog數(shù)字VLSI設(shè)計(jì)教程》嗦明。其中是這么寫(xiě)到的:
大多數(shù)的矢量類(lèi)型(reg或者net)都被默認(rèn)當(dāng)做無(wú)符號(hào)數(shù)。integer和real是個(gè)例外蚪燕,它們被默認(rèn)為當(dāng)做有符號(hào)數(shù)娶牌。通常,real類(lèi)型是不可綜合的馆纳。
假設(shè)在沒(méi)有溢出的情況下诗良,不管是無(wú)符號(hào)數(shù)還是有符號(hào)數(shù),它們都是二進(jìn)制的一串?dāng)?shù)值而已鲁驶;而當(dāng)這個(gè)值被當(dāng)做某種類(lèi)型比較時(shí):又符號(hào)數(shù)的MSB被用來(lái)表示這個(gè)數(shù)字的符號(hào)鉴裹,而無(wú)符號(hào)數(shù)的MSB則是位權(quán)最高的那一位。無(wú)論采用什么樣的二進(jìn)制格式钥弯,一個(gè)無(wú)符號(hào)數(shù)永遠(yuǎn)也不能成為負(fù)值径荔。采用integer配合FOR語(yǔ)句,行數(shù)比較少脆霎,但是integer不能綜合总处,只能用來(lái)仿真。
位拼接符號(hào)的使用時(shí)的注意事項(xiàng)
問(wèn)題一
reg [7:0] reg2;
reg2<={2'b11,reg2};//不能實(shí)現(xiàn)預(yù)定的功能睛蛛;
reg2<={reg2,2'b11,};//能實(shí)現(xiàn)預(yù)定的功能鹦马;
reg2<={2'b11,reg2[7:2]};能實(shí)現(xiàn)預(yù)定的功能;
在利用拼接符號(hào)時(shí)玖院,一定要指定每一個(gè)元素的位寬菠红;在位拼接表達(dá)式中不允許存在沒(méi)有指明位數(shù)的信號(hào)
在想允許綜合的風(fēng)格代碼中,一般不對(duì)RAM復(fù)位
RAM一般會(huì)占用大量的面積难菌,所以不是用綜合出來(lái)的RAM