正在加载图片...
24 Verilog hdl bg停描述语言 China°o 下载 mb=-2;//comb的值为14(1110),1110是2的补码。 Comb=5;/Comb的值为15(0101) 2.存储器 存储器是一个寄存器数组。存储器使用如下方式说明: reg msb: Isb] memory 1[ upperI: lower 例如 reg [0: 3] MyMem [0: 63 / MyMem为64个4位寄存器的数组 reg Bog [1: 5 //Bog为5个1位寄存器的数组 MMem和Bog都是存储器。数组的维数不能大于2。注意存储器属于寄存器数组类型。线网数 据类型没有相应的存储器类型 单个寄存器说明既能够用于说明寄存器类型,也可以用于说明存储器类型。 parameter ADDR SIZE =16, WORD SIZE =8; reg [1: WORD SIZE] RamPar ADDR SIZE-1 0], DataReg RamAr是存储器,是16个8位寄存器数组,而 DataReg是8位寄存器 在赋值语句中需要注意如下区别:存储器赋值不能在一条赋值语句中完成,但是寄存器 可以。因此在存储器被赋值时,需要定义一个索引。下例说明它们之间的不同。 reg[1:5]Dig;//Dig为5位寄存器 Dig=5"b11011 上述赋值都是正确的,但下述赋值不正确: reg Bog[1:51;/Aog为5个1位寄存器的存储器 Bog=5"b11011 有一种存储器赋值的方法是分别对存储器中的每个字赋值。例如 reg [0: 3] Rom [1: 4] Xrom[1]=4hA; From[2] [3]=4"hF; From[4]=4 h2 为存储器赋值的另一种方法是使用系统任务: 1) sreadmemb(加载二进制值) 2) Sreadmemb(加载十六进制值) 这些系统任务从指定的文本文件中读取数据并加载到存储器。文本文件必须包含相应的二进 制或者十六进制数。例如: reg [1:4] RomB [7:1 RomB)i Romb是存储器。文件“ ram.patt”必须包含二进制值。文件也可以包含空白空间和注释。下 面是文件中可能内容的实例 1101. . . C o m b = -2; //C o m b 的值为1 4(1 1 1 0),1 1 1 0是2的补码。 C o m b = 5; //C o m b的值为1 5(0 1 0 1)。 2. 存储器 存储器是一个寄存器数组。存储器使用如下方式说明: r e g [ m s b: 1 s b] m e m o r y 1 [ u p p e r 1: l o w e r 1] , m e m o r y 2 [u p p e r 2: l o w e r 2] ,. . . ; 例如: r e g [0:3 ] M y M e m [ 0 : 6 3 ] / /M y M e m为6 4个4位寄存器的数组。 r e g B o g [ 1 : 5 ] / /B o g为5个1位寄存器的数组。 M y M e m和B o g都是存储器。数组的维数不能大于 2。注意存储器属于寄存器数组类型。线网数 据类型没有相应的存储器类型。 单个寄存器说明既能够用于说明寄存器类型,也可以用于说明存储器类型。 p a r a m e t e r A D D R _ S I Z E = 16 , W O R D _ S I Z E = 8; r e g [1: W O R D _ S I Z E] R a m P a r [ A D D R _ S I Z E-1 : 0], D a t a R e g; R a m P a r是存储器,是1 6个8位寄存器数组,而D a t a R e g是8位寄存器。 在赋值语句中需要注意如下区别:存储器赋值不能在一条赋值语句中完成,但是寄存器 可以。因此在存储器被赋值时,需要定义一个索引。下例说明它们之间的不同。 r e g [1:5] D i g; //D i g为5位寄存器。 . . . D i g = 5'b11011; 上述赋值都是正确的, 但下述赋值不正确: r e g B O g[1:5]; //B o g为5个1位寄存器的存储器。 . . . B o g = 5'b11011; 有一种存储器赋值的方法是分别对存储器中的每个字赋值。例如: r e g [0:3] X r o m [ 1 : 4 ] . . . X r o m[1] = 4'hA; X r o m[2] = 4'h8; X r o m[3] = 4'hF; X r o m[4] = 4'h2; 为存储器赋值的另一种方法是使用系统任务: 1) $re a d m e m b (加载二进制值) 2) $re a d m e m b (加载十六进制值) 这些系统任务从指定的文本文件中读取数据并加载到存储器。文本文件必须包含相应的二进 制或者十六进制数。例如: r e g [1:4] RomB [7:1] ; $ r e a d m e m b ("ram.patt", RomB); R o m b是存储器。文件“ r a m . p a t t”必须包含二进制值。文件也可以包含空白空间和注释。下 面是文件中可能内容的实例。 1 1 0 1 24 Verilog HDL 硬件描述语言 下载
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有