- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章EDA_Verilog语言
sl; 2) 寄存器(reg)类型
数据储存单元的抽象。
默认初始值为X
常用行为语句结构来给寄存器类型的变量赋值。用来表示always块内的指定信号
; 格式:
reg[n-1:0] 数据名1,数据名2,……,数据名i;
或
reg[n:1] 数据名1,数据名2,……,数据名i;
例:
reg rega;
reg[3:0] regb,regc;
可以赋正值也可以赋负值,但当一个reg型数据是一个表达式
中的操作数时,它的值被当作无符号值,即正值。
如regb被赋值为-1,在表达式中被认为是??
;例:寄存器的声明和使用
reg reset;
initial
begin
reset=1`b1;
#100 reset=1`b0;
end
; 3) 整数、实数和时间寄存器类型
integer(通用寄存器数据类型,用于对数量进行操作)
例: integer counter;//一般用途,做为计数器
inital
counter=-1;
real 实常量和实寄存器数??类型使用,默认值为0
例:real delta;
initial
begin
delta=4e10;
delta=2.13;
end
integer i;
initial
i=delta; //i的值为2 ; time 保存仿真时间,通过系统函数$time可以得到当前的仿真时间
;向量域选择
对上例中向量,可以指定它的某一位或若干个相邻位
;Verilog语言; 5) 数组;count[5]=0;
chk_point[100]=0;
port_id[3]=0;
matrix [1][0]=33559; //第1行第0列的整数型单元置为33559
array_4d[0][0][0][0][15:0]=0; //把四维数组中索引号为[0][0][0][0]的寄存
器型单元的0~15位置为0
port_id=0; //非法
matrix[1]=0; //非法; 6) memory类型
通过扩展reg型数据的地址范围生成格式:
reg[n-1:0] 存储器名[m-1:0];
或者
reg[n-1:0] 存储器名[m:1];
例: reg[7:0] memea[255:0];
;注意:
reg[n-1:0] rega;
reg mema[n-1:0];
rega=0; 等于 mema=0; ??
mema[3]=0;正确??
; 7) 参数; 参数值的改写(方法之一)
举例说明:
module mod ( out, ina, inb);
…
parameter cycle = 8, real_constant=2.039,
file = “/user1/jmdong/design/mem_file.dat”;
…
endmodule
module test;
…
mod mk(out,ina,inb);
defparam mk.cycle=6, mk.file=“../my_mem.dat”;
…
endmodule ; 参数值的改写(方法之二)
举例说明:
module mod ( out, ina, inb);
…
parameter cycle = 8, real_constant=2.039,
file = “/user1/jmdong/design/mem_file.dat”;
…
endmodule
module test;
…
mod # (5, 3.20, “../my_mem.dat”) mk(out,ina,inb);
…
endmodule;模块DUT的边界;输入口(input)
对于模块内部,必须为线网类型;从模块外部看,可以为线网或reg型
输出口 (output)
从模块内部看,可以是线网或reg型;从外部
文档评论(0)