- 1、本文档共42页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
HDL第2次课概要1
连线型(wire型) wire型数据常用来表示用于以assign关键字指定的组合逻辑信号 Verilog程序模块中输入输出信号类型缺省时自动定义为wire型 wire型信号可作任何表达式的输入,也可用“assign”语句和实例元件输出 wire [n-1:0]数据名1,数据名2,…,数据名i; 或 wire [n-1:0]数据名1,数据名2,…,数据名i; //共有i条总线,每条总线内有n条线路 module mod1( out, in1, in2); . . . parameter cycle = 20, prop_ del = 3, setup = cycle/2 - prop_del, p1 = 8, x_ word = 16’bx, file = / usr1/ jdough/ design/ mem_ file. dat; . . . wire [4:0]c,d; wire [p1: 0] w1; // A wire declaration using parameter . . . endmodule 寄存器型(reg型) 寄存器型数据对应硬件电路中具有状态保持作用的电路元件,如触发器、寄存器等。其特点是需要被明确赋值,且寄存器在重新被赋值前一直保持原值。 寄存器型(reg型) reg型数据常用来表示用于“always”模块内的指定信号,常代表触发器 在“always”块内被赋值的每一个信号都必须定义成reg型 reg类型数据的默认初始值为不定值x reg [n-1:0]数据名1,数据名2,…,数据名i; 或 reg [n-1:0]数据名1,数据名2,…,数据名i; 如何选择正确的数据类型? 输入口(input)可以由寄存器或网络连接驱动,但它本身只能驱动网络连接。 输出口 (output)可以由寄存器或网络连接驱动,但它本身只能驱动网络连接。 输入/输出口(inout)只可以由网络连接驱动,它本身也只能驱动网络连接。 如果信号变量是在过程块 (initial块 或 always块)中被赋值的,必须把它声明为寄存器类型 in1 in2 O A B Y module top; wire y; reg a, b; DUT u1 (y, a, b) ; initial begin a = 0; b = 0; #5 a = 1; end endmodule module DUT (Y, A, B); output Y; input A, B; wire Y, A, B; and (Y, A, B) ; endmodule 输入端口可以由net/register驱动,但输入端口只能是net 双向端口输入/输出只能是net类型 在过程块中只能给reg类型赋值 若Y,A,B说明为reg则会产生错误。 输出端口可以是net/register类型,输出端口只能驱动net 指出下面模块中Cin,Cout,C3,C5的类型 module FDDA (A,B,Cin,Sum,Cout); input A, B, cin; output Sum, Cout; ………. endmodule module Test; ……… FADDM (C1,C2,C3,C4,C5); ……… endmodule 答案:Cin (wire) Cout (wire/reg) C3 ( wire/reg) C5 (wire) 存储器型(memory型) reg [n-1:0]存储器名[m-1:0]; 或 reg [n-1:0]存储器名[m:0]; Verilog HDL通过对reg型变量建立数组来对存储器建模,可以描述RAM型存储器,ROM存储器和reg文件。数组中的每一个单元通过一个数组索引进行寻址。memory型数据是通过扩展reg型数据的地址范围来生成的。 reg [7:0] mema [255:0] ; //mema存储器中含有256个8位寄存器 memory型 reg [n-1:0] rega;//一个n位寄存器 reg mema[n-1:0];//n个1位寄存器构成的存储器 rega=0;//合法 mema=0;//非法 寄存器赋值用一条赋值语句即可,而对存储器不行 mema[3]=0;//给mema中第3个存储单元赋值为0 对存储器进行读写操作时,只能对存储器的存储单元操作
文档评论(0)