家电维修班,手机维修班,电脑维修班,电工班,焊工班,液晶电视维修班,电动工具维修班、电动车摩托车维修班、网络营销培训、网站设计培训、淘宝培训---全国招生 家电维修班,手机维修班,电脑维修班,电工班,焊工班,液晶电视维修班,电动工具维修班、电动车摩托车维修班、网络营销培训、网站设计培训、淘宝培训---全国招生
您的位置:网站首页 > 电器维修资料网 > 正文 >

Verilog HDL语言基础教程之数据类型和运算符

★★★★★【文章导读】:Verilog HDL语言基础教程之数据类型和运算符具体内容是:这些数据类型除time型外都与基本逻辑单元建库有关,与系统设计没有很大的关系。在一般电路设计自动化的环境下,****用的基本部件库是由半导体厂家和EDA工具厂家共同****的。系统设计工程师不必过多地关心门级和开关级…

来源: 日期:2013-11-3 17:29:58 人气:标签:

Verilog HDL语言基础教程之数据类型和运算符

    这些数据类型除time型外都与基本逻辑单元建库有关,与系统设计没有很大的关系。在一般电路设计自动化的环境下,****用的基本部件库是由半导体厂家和EDA工具厂家共同****的。系统设计工程师不必过多地关心门级和开关级的Verilog HDL语法现象。Verilog HDL语言中也有常量和变量之分,它们分别属于以上这些类型。下面对最常用的几种进行介绍。

    常量

    常量是在程序运行过程中其值不能被改变的量。下面首先对在Verilog HDL语言中使用的数字及其表示方式进行介绍。

    1.数字

    (1)整数。

    在Verilog HDL中,整型常量有以下4种进制表示形式。

    ① 二进制整数(b或B)。

    ② 十进制整数(d或D)。

    ③ 十六进制整数(h或H)。

    ④ 八进制整数(o或O)。

    数字表达方式有以下3种。

    ① <位宽><进制><数字>,这是一种全面的描述方式。

    ② <进制><数字>,在这种描述方式中,数字的位宽采用缺省位宽(这由具体的机器系统决定,但至少32位)。

    ③ <数字>,在这种描述方式中,采用缺省进制十进制。

    在表达式中,位宽指明了数字的精确位数。例如:一个4位二进制数数字的位宽为4,一个4位十六进制数数字的位宽为16(因为每单个十六进制数要用4位二进制数来表示),如下例所示:

    8'b10101100 //位宽为8的数的二进制表示,'b表示二进制

    8'ha2 //位宽为8的数的十六进制,'h表示十六进制。

    (2)x和z值。

    在数字电路中,x代表不定值,z代表高阻值。一个x可以用来定义十六/八/二进制数的四/三/一位二进制数的状态。z的表示方式同x类似。z还有一种表达方式是可以写作?。在使用case表达式时建议使用这种写法,以提高程序的可读性,如下例所示:

    4'b10x0 //位宽为4的二进制数从低位数起第二位为不定值

    4'b101z //位宽为4的二进制数从低位数起第一位为高阻值

    12'dz //位宽为12的十进制数其值为高阻值(第一种表达方式)

    12'd? //位宽为12的十进制数其值为高阻值(第二种表达方式)

    8'h4x //位宽为8的十六进制数其低四位值为不定值

    (3)负数。

    一个数字可以被定义为负数,只需在位宽表达式前加一个减号,并且减号必须写在数字定义表达式的最前面。注意减号不可以放在位宽和进制之间,也不可以放在进制和具体的数之间,如下例所示:

    -8'd5 //这个表达式代表5的补数(用8位二进制数表示)

    8'd-5 //非法格式

    (4)下划线(underscore_)。

    下划线可以用来分隔数字的表达以提高程序可读性。但不可以用在位宽和进制处,只能用在具体的数字之间,例如:

    16'b1010_1011_1111_1010 //合法格式

    8'b_0011_1010 //非法格式

    当常量不声明位数时,默认值是32位,每个字母用8位的ASCII值表示,例如:

    10=32'd10=32'b1010 //十进制和二进制

    1=32'd1=32'b1 //十进制和二进制

    -1=-32'd1=32'hFFFFFFFF //十进制和十六进制

    'BX=32'BX=32'BXXXXXXX…X //默认声明为32位

    "AB"=16'B01000001_01000010 //每个字母用8位表示

    2.参数(Parameter)

    在Verilog HDL中用parameter来定义常量,即用parameter来定义一个标识符代表一个常量,称为符号常量,即标识符形式的常量。采用标识符代表一个常量可提高程序的可读性和可维护性。parameter型数据是一种常数型的数据,其说明格式如下:

    Parameter 参数名1=表达式,参数名2=表达式, …, 参数名n=表达式;

    parameter是参数型数据的确认符,确认符后跟着一个用逗号分隔开的赋值语句表。在每一个赋值语句的右边必须是一个常数表达式。也就是说,该表达式只能包含数字或先前已定义过的参数,例如:

    parameter msb=7; //定义参数msb为常量7

    parameter e=25, f=29; //定义两个常数参数

    parameter r=5.7; //声明r为一个实型参数

    parameter byte_size=8, byte_msb=byte_size-1; //用常数表达式赋值

    parameter average_delay = (r+f)/2; //用常数表达式赋值

    参数型常数经常用于定义延迟时间和变量宽度。在模块或实例引用时可通过参数传递改变在被引用模块或实例中已定义的参数。下面将通过一个例子进一步说明在层次调用的电路中改变参数常用的一些用法。

    module Decode(A,F); //模块声明

    parameter Width=1, Polarity=1; //参数声明

    ……………

    endmodule

    module Top;

    wire[3:0] A4; //连线资源声明

    wire[4:0] A5;

    wire[15:0] F16;

    wire[31:0] F32;

    Decode #(4,0) D1(A4,F16); //模块引用,并传递参数(4,0)

    Decode #(5) D2(A5,F32); //模块引用,并传递参数(5)

    endmodule

    在引用Decode实例时,D1和D2的Width将采用不同的值,分别为4和5,且D1的Polarity将为0。可用例子中所用的方法来改变参数,即用“#(4,0)”向D1中传递“Width=4,Polarity=0”,用“#(5)”向D2中传递“Width=5,Polarit=1”。

    变量

    变量是在程序运行过程中,其值可以改变的量。在Verilog HDL中变量类型有很多种,这里只对常用的几种变量进行介绍。

    1.网络类型变量

    网络类型表示结构实体(例如门)之间的物理连接。网络类型的变量不能储存值,而且它必需受到驱动器(例如门或连续赋值语句,assign)的驱动。如果没有驱动器连接到网络类型的变量上,则该变量就是高阻的,即其值为z。

    常用的网络类型变量包括wire型和tri型。这两种变量都是用于连接器件单元,它们具有相同的语法格式和功能。之所以提供这两种名字来表达相同的概念是为了与模型中所使用的变量的实际情况相一致。

    wire型变量通常是用来表示单个门驱动或连续赋值语句驱动的网络型数据,tri型变量则用来表示多驱动器驱动的网络型数据。如果wire型或tri型变量没有定义逻辑强度(logIC strength),在多驱动源的情况下,逻辑值会发生冲突,从而产生不确定值。

    表1所示为在同等驱动强度下,两个驱动源驱动的wire型和tri型变量的真值表。

    表1 wire/tri型变量真值表

wire/tri型变量双驱动源运算结果

      驱动源1

驱动源2

0

1

x

z

0

0

x

x

0

1

 

1

x

1

x

x

x

x

x

z

0

1

x

z

    wire型变量常用来表示用于以assign关键字指定的组合逻辑信号。Verilog程序模块中输入/输出信号类型缺省时自动定义为wire型。wire型变量可以用作任何方程式的输入,也可以用作“assign”语句或实例元件的输出。wire型变量的声明格式如下:

    wire [n-1:0] 变量名1,变量名2,…,变量名i; //共有i条总线,每条总线内有n条线路

    也可以如下表示:

    wire [n:1] 变量名1,变量名2,…,变量名i; //共有i条总线,每条总线内有n条线路

    其中,wire是wire型变量的确认符,[n-1:0]和[n:1]代表该变量的位宽,即该变量有几位,最后跟着的是变量的名字。如果一次定义多个变量,变量名之间用逗号隔开。声明语句的最后要用分号表示语句结束。如下所示:

    wire a; //定义了一个一位的wire型变量

    wire [7:0] b; //定义了一个八位的wire型变量

    wire [4:1] c, d; //定义了两个四位的wire型变量

  • 1
  • 2
  • 3
  • 4
  • 下一页

【看看这篇文章在百度的收录情况】

联系方式

  • 0731-85579057 , 0731-85569651
  • 点击这里给我发消息点击这里给我发消息点击这里给我发消息
网站栏目导航: 培训课程 手机硬件 手机软件 综合维修 学校资讯 考证指南 就业导航 招生指南 教学管理 入学须知 学校图片 教学大纲 师资力量 学生感言 学校概况 教学实景 手机维修培训资讯 电脑维修培训 维修间故事 手机维修培训 液晶电视维修培训 家电维修资料网 电器维修资料网 招生地区 刷机教程 家电维修 手机技巧 老版网站 招生平台网络工程
友情链接: 监控安装培训 电动工具维修 家电维修学校 电工培训学校 液晶电视维修 焊工培训学校 电工焊工学校 电脑维修学校 家电维修培训 电脑维修培训 家装电工培训网络安装维护 主板维修 液晶显示器 笔记本电脑维修 电脑组装维护 电脑硬件维修 电脑维修 电工考证 电工证 装修电工 水电工 维修电工 电工 焊接技术 电焊工 焊工 电动设备维修 电动工具维修 制冷维修 空调维修 冰箱维修  更多>>
阳光-手机维修教育品牌学校
点击这里给我发消息 点击这里给我发消息 点击这里给我发消息
电工培训学校 电动车维修学校 摩托车维修学校 摩托车维修培训 手机维修培训 家电维修培训 电脑维修培训 电动工具维修培训 液晶电视维修培训 安防监控培训 空调维修培训 网络营销培训 网站设计培训 淘宝网店培训 电器维修培训 家电维修学校 电工培训 焊工培训 电工学校 电工培训学校 电动车维修学校 摩托车维修学校 摩托车维修培训 手机维修培训 家电维修培训 电脑维修培训 电动工具维修培训 液晶电视维修培训 安防监控培训 空调维修培训 网络营销培训 网站设计培训 淘宝网店培训 电器维修培训 家电维修学校 电工培训 焊工培训 电工学校 电工培训学校 电动车维修学校 摩托车维修学校 摩托车维修培训 手机维修培训 家电维修培训 电脑维修培训 电动工具维修培训 液晶电视维修培训 安防监控培训 空调维修培训 网络营销培训 网站设计培训 淘宝网店培训 电器维修培训 家电维修学校 电工培训 焊工培训 电工学校 电工培训学校 电动车维修学校 摩托车维修学校 摩托车维修培训 手机维修培训 家电维修培训 电脑维修培训 电动工具维修培训 液晶电视维修培训 安防监控培训 空调维修培训 网络营销培训 网站设计培训 淘宝网店培训 电器维修培训 家电维修学校 电工培训 焊工培训 电工学校
中山市,固原市,银川市,玉树,海东,陇南市,酒泉市,张掖市,天水市,金昌市,兰州市,榆林市,延安市,渭南市,铜川市,阿里,山南,拉萨市,怒江,文山州,楚雄州,普洱市,昭通市,玉溪市,昆明市,毕节,铜仁,遵义市,贵阳市,甘孜州,资阳市,达州市,宜宾市,南充市,遂宁市,绵阳市,泸州市,自贡市,三亚市,崇左市,河池市,玉林市,钦州市,梧州市,柳州市,梅州市,肇庆市,湛江市,佛山市,珠海市,韶关市,湘西州,怀化市,郴州市,张家界市,邵阳市,株洲市,仙桃市,随州市,荆州市,荆门市,襄樊市,黄石市,驻马店市,信阳市,南阳市,漯河市,中卫市,石嘴山市,海西,海南藏州,黄南州,海北,甘南,庆阳市,平凉市,武威市,白银市,嘉峪关市,安康市,汉中市,咸阳市,宝鸡市,林芝,日喀则,昌都,迪庆,德宏,大理,西双版纳,红河州,临沧市,丽江市,保山市,曲靖市,黔东州,黔西州,安顺市,六盘水市,凉山州,阿坝州,雅安市,广安市,眉山市,内江市,广元市,德阳市,攀枝花市,成都市,海口市,来宾市,百色市,贵港市,北海市,桂林市,南宁市,云浮市,揭阳市,潮州市,清远市,阳江市,汕尾市,惠州市,茂名市,江门市,汕头市,深圳市,广州市,娄底市,永州市,益阳市,岳阳市,湘潭市,长沙市,恩施州,黄冈市,孝感市,鄂州市,十堰市,武汉市,周口市,商丘市,三门峡市,许昌市,焦作市,安阳市,鹤壁市,平顶山市,开封市,郑州市,聊城市,滨州市,德州市,莱芜市,日照市,泰安市,烟台市,潍坊市,东营市,淄博市,上饶市,济南市,抚州市,宜春市,赣州市,新余市,九江市,景德镇市,宁德市,南平市,泉州市,莆田市,厦门市,宣城市,亳州市,六安市,宿州市,黄山市,滁州市,安庆市,淮北市,马鞍山市,蚌埠市,芜湖市,合肥市,丽水市,舟山市,衢州市,金华市,湖州市,嘉兴市,宁波市,宿迁市,镇江市,盐城市,连云港市,苏州市,徐州市,南京市,绥化市,牡丹江市,佳木斯市,大庆市,鹤岗市,哈尔滨市,白城市,白山市,辽源市,吉林市,葫芦岛市,铁岭市,盘锦市,阜新市,锦州市,本溪市,鞍山市,沈阳市,锡林郭勒盟,通辽市,乌海市,吕梁市,忻州市,晋中市,晋城市,阳泉市,太原市,廊坊市,承德市,保定市,邯郸市,唐山市,宁夏,甘肃省,西藏,贵州省,重庆市,广西,湖南省,河南省,江西省,安徽省,江苏省,黑龙江省,辽宁省,山西省,天津市,四平市,内蒙古,吴忠市,果洛,西宁市,定西市,商洛市,西安市,那曲,黔南州,巴中市,乐山市,贺州市,防城港市,东莞市,河源市,常德市,衡阳市,咸宁市,宜昌市,濮阳市,新乡市,洛阳市,菏泽市,临沂市,威海市,济宁市,枣庄市,青岛市,吉安市,鹰潭市,萍乡市,南昌市,龙岩市,漳州市,三明市,福州市,池州市,巢湖市,阜阳市,铜陵市,淮南市,台州市,绍兴市,温州市,杭州市,泰州市,扬州市,淮安市,南通市,常州市,无锡市,大兴安岭,黑河市,七台河市,伊春市,双鸭山市,鸡西市,齐齐哈尔市,延边,松原市,通化市,长春市,朝阳市,辽阳市,营口市,丹东市,抚顺市,大连市,阿拉善盟,兴安盟,乌兰察布市,巴彦淖尔市,呼伦贝尔市,鄂尔多斯市,赤峰市,包头市,呼和浩特市,临汾市,运城市,朔州市,长治市,大同市,衡水市,沧州市,张家口市,邢台市,秦皇岛市,石家庄市,青海省,陕西省,云南省,四川省,海南省,广东省,湖北省,山东省,福建省,浙江省,上海市,吉林省,河北省,北京市