设计和验证部分VerilogHDL模型的不同抽象级别
答案:1 悬赏:30 手机版
解决时间 2021-01-24 22:03
- 提问者网友:最爱你的唇
- 2021-01-24 05:29
设计和验证部分VerilogHDL模型的不同抽象级别
最佳答案
- 五星知识达人网友:笑迎怀羞
- 2021-01-24 05:39
所谓不同的抽象类别,实际上是指同一个物理电路,可以在不同层次上用Verilog语言来描述。如果只从行为功能的角度来描述某一电路模块,就称作行为模块。如果从电路结构的角度来描述该电路模块,就称作结构模块。根据抽象的级别将Verilog的模块分为5种不同的等级:
1)系统级 2)算法级 3)RTL级(register-transfer-level)4)门级 5)开关级。
对于数字系统的逻辑设计工程师而言:熟练地掌握门级、RTL级、算法级、系统级的描述是非常重要的。
对于电路基本元部件的设计者而言,则需要掌握用户自定义原语(UDP)和开关级的描述。
Verilog中有关门类型的关键字有26个,这里简单介绍其中8种:
and-与门;nand-与非门;or-或门;nor-或非门;xor-异或门;xnor-异或非门;buf-缓冲器;not-非门。
用户定义原语:
用户定义原语是从英语User Defined Primitive直接翻译过来的,简称UDP。利用用户定义原语可以自己定义自己设计的基本逻辑器件的功能,由于UDP是用查表的方法来确定输出的,在用仿真器进行仿真时,对他的处理较对一般用户编写的模块和组合逻辑快得多。UDP的定义和一般模块类似,只是不用module而是改用primitive作为关键词,不用endmodule而是endprimitive关键词结束。
语法:primitive 元件名(输出端口,输入端口1,输入端口2,....); //书上没有分号?
output 输出端口名;
input 输入端口1,输入端口2....;
reg 输出端口;
initial
begin 输出端口寄存器或者时序逻辑内部寄存器初始化0; end
table
//输入1 输入2 输入3 ... :输出
逻辑1 逻辑2 逻辑3 ... :逻辑值;
逻辑1 逻辑2 逻辑3 ... :逻辑值;
逻辑1 逻辑2 逻辑3 ... :逻辑值;
... .... ... ... ..... ...........;
endtable
endprimitive
注意:
1)UDP只能有一个输出量,而且必须是端口说明的第一项;
2)UDP可以有多个输入端,最多允许有10个输入端;
3)UDP所有端口变量必须是标量,即必须是1位的;
4)在UDP的逻辑表中只允许出现0,1,x三种逻辑值,高阻状态z不允许出现。
5)只有输出端可以定义为reg寄存器类型变量;
6)initial语句用于为时序电路内部寄存器赋初值,只允许赋0,1,x的三种逻辑值,默认值为X。
1)系统级 2)算法级 3)RTL级(register-transfer-level)4)门级 5)开关级。
对于数字系统的逻辑设计工程师而言:熟练地掌握门级、RTL级、算法级、系统级的描述是非常重要的。
对于电路基本元部件的设计者而言,则需要掌握用户自定义原语(UDP)和开关级的描述。
Verilog中有关门类型的关键字有26个,这里简单介绍其中8种:
and-与门;nand-与非门;or-或门;nor-或非门;xor-异或门;xnor-异或非门;buf-缓冲器;not-非门。
用户定义原语:
用户定义原语是从英语User Defined Primitive直接翻译过来的,简称UDP。利用用户定义原语可以自己定义自己设计的基本逻辑器件的功能,由于UDP是用查表的方法来确定输出的,在用仿真器进行仿真时,对他的处理较对一般用户编写的模块和组合逻辑快得多。UDP的定义和一般模块类似,只是不用module而是改用primitive作为关键词,不用endmodule而是endprimitive关键词结束。
语法:primitive 元件名(输出端口,输入端口1,输入端口2,....); //书上没有分号?
output 输出端口名;
input 输入端口1,输入端口2....;
reg 输出端口;
initial
begin 输出端口寄存器或者时序逻辑内部寄存器初始化0; end
table
//输入1 输入2 输入3 ... :输出
逻辑1 逻辑2 逻辑3 ... :逻辑值;
逻辑1 逻辑2 逻辑3 ... :逻辑值;
逻辑1 逻辑2 逻辑3 ... :逻辑值;
... .... ... ... ..... ...........;
endtable
endprimitive
注意:
1)UDP只能有一个输出量,而且必须是端口说明的第一项;
2)UDP可以有多个输入端,最多允许有10个输入端;
3)UDP所有端口变量必须是标量,即必须是1位的;
4)在UDP的逻辑表中只允许出现0,1,x三种逻辑值,高阻状态z不允许出现。
5)只有输出端可以定义为reg寄存器类型变量;
6)initial语句用于为时序电路内部寄存器赋初值,只允许赋0,1,x的三种逻辑值,默认值为X。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯