硬件语言 Verilog HDL 学习 day01 了解基本知识,基本语法2,运算符,表达式
创始人
2024-05-31 04:17:32
0

1.数字集成电路设计

数字集成电路设计方法的演变:

1. 以元件为基础

2.以单元为基础,

3.以 RTL 综合为基础

4. 以IP为基础。


2.集成电路的发展阶段

1. 第一阶段:以加工制造为主导的 IC  产业发展的初级阶段  (产品: 简单的微处理器

2.第二阶段: 是标准工艺加工线公司与IC 设计公司共同发展的阶段  (产品: MPU,微处理器)

3.第三阶段: IC产业的 四业 开始分离,功能强大的通用型中央处理器 和信号处理器

4.第四阶段: IC 产业开始以 Fundry 为主导,IP的使用广泛。


3.功能模块的可重用性

1. 软核(Soft IP Core)
软核在EDA 设计领域指的是综合之前的寄存器传输级(RTL) 模型;具体在FPGA 设计中指的是对电路的硬件语言描述,包括逻辑描述、网表和帮助文档等。软核只经过功能仿真,需要经过综合以及布局布线才能使用。其优点是灵活性高、可移植性强,允许用户自配置;缺点是对模块的预测性较低,在后续设计中存在发生错误的可能性,有一定的设计风险。软核是IP 核应用最广泛的形式。

2. 固核(Firm IP Core)
固核在EDA 设计领域指的是带有平面规划信息的网表;具体在FPGA 设计中可以看做带有布局规划的软核,通常以RTL 代码和对应具体工艺网表的混合形式提供。将RTL 描述结合具体标准单元库进行综合优化设计,形成门级网表,再通过布局布线工具即可使用。和软核相比,固核的设计灵活性稍差,但在可靠性上有较大提高。目前,固核也是IP 核的主流形式之一。

3. 硬核 (Hard IP Core)
硬核在EDA 设计领域指经过验证的设计版图;具体在FPGA 设计中指布局和工艺固定、经过前端和后端验证的设计,设计人员不能对其修改。不能修改的原因有两个:首先是系统设计对各个模块的时序要求很严格,不允许打乱已有的物理版图;其次是保护知识产权的要求,不允许设计人员对其有任何改动。IP 硬核的不许修改特点使其复用有一定的困难,因此只能用于某些特定应用,使用范围较窄。
 



4.Verilog HDL  语言要素

1.空白符  :空格符(\b),制表符(\t),换行符,换页符,

2.注意符 :  //  注释一行,   注释多行 /*   */     (注释最好是英文)

3.标识符:   标识符包含:字母,数字,$, _ (下划线),  开头只能是 字母和下划线

4.转义标识符: \

5.关键字: 系统自带的标识符,有固定的意义。

6.Verilog HDL 四种状态: 0 (低电平), 1(高电平) , x(未知态) , z (高阻态)-》总线

7.负数,  补码形式存在

8. 数值进制 , 二进制 b/B, 八进制 o/O, 十进制 d/D,  十六进制 h/H.

9.整数表示,

10.实数表示: (不能用于设计) 十进制表示,  科学计数法,



5.数据类型

物理数据类型:连线型、寄存器型和存储器型数据类型;信号强度表示数字电路中不同强度的驱动源,用来解决不同驱动强度存在下的赋值冲突:

驱动能力:
                                       

标记符   名称     类型强弱程度
supply 电源级驱动驱动最强
strong   强驱动   驱动 逐渐下降
pull上拉级驱动驱动逐渐下降
large大容性存储逐渐下降
weak弱驱动驱动逐渐下降
medium中性驱动存储逐渐下降
small小容性存储逐渐下降
highz高容性高阻



 


连线型数据类型:

连线型数据类型功能说明
wrie,tri标准连线 (缺省为该类型)
wor,trior多重驱动时,具有线或特性的连线型
wand,trand多重驱动时,具有线与特性的连线型
trireg具有电荷保持特性的连线型数据
tri1上拉电阻
tri0下拉电阻
supply1电源线,用于对电源建模,为高电平1
supply0电源线,用于对地 建模, 为低电平0


寄存器: reg型

reg型是数据储存单元的抽象类型,其对应的硬件电路元件具有状态保持作用,能够存储数据,如触发器、锁存器等。
reg型变量常用于行为级描述,由过程赋值语句对其进行赋值。
reg型变量简单例子,
reg a:   //定义一个一也的名为a的reg变量
reg [3:0] b:  //  定义一个4位的名为b的reg型变量
reg[8:1]c.d.e;   //定义了三个名称分别为c、d、 e的8位的reg型变量

reg型变量一般为无符号数,若将一个负数赋给reg型变量,则自动转换成其二进制补
码形式。例如:
reg signed[3:0]rega;

rega=-2;  // rega的值为1110(14),是2的补码

原码: 0010

反码: 1101

补码: 1110



5.运算符与表达式

1.算数操作符,  加法(+),减法(-),乘法(*),除法(/), 取模(%)

重点:算术操作符的结果是位宽。算术表达式结果的长度是由最长操作数决定的,再赋值语句中,算术操作结果由操作最左端目标长度决定

一,加法

reg[3:0]a,b,c;
Reg[1:0]d,k;
a=4'b1001
d=2'b01b=a+d   //b=4'b1010
k=a+d   //k=2'b10

二,减法

reg[3:0]a,b,c;
Reg[1:0]d,k;
a=4'b1001
d=2'b01b=a-d   //b=4'b1000
k=a-d   //k=2'b00

三,乘法

reg[3:0]a,b,c;
Reg[1:0]d,k;
a=4'b1001
d=2'b01b=a*d   //b=4'b1001
k=a*d   //k=2'b01

四,除法

reg[3:0]a,b,c;
Reg[1:0]d,k;
a=4'b1001
d=2'b01b=a/d   //b=4'b1010
k=a/d   //k=2'b01

五,取模

reg[3:0]a,b,c;
Reg[1:0]d,k;
a=4'b1001
d=2'b11b=a%d   //b=4'b0000
k=a%d   //k=2'b00

2.关系操作运算符 :  大于(>),小于(<),大于等于(>=) ,小于等于  (<=)  

重点:任何和不定状态的运算输出都是不定状态,但我们不会遇到,在数电中对不定状态管理非常严格。我们都知道产生不定状态只有两种情况一种是信号悬空,另一种是2个信号对一个信号驱动。(两个信号输入只有一个非门输出)

简单  (不知道对比的话,转为十进制自己看看 就行了)

重要的是:   不定态的加入

a = 3;d = 4'hx    //不定状态$display(a<=d)     //out x

3.相等关系符

有四种相等的关系符:  == (等于), !=(不等于)   ,  ===(全等), !==  (非全等)

重要:值得注意的是,我们经常会使用全等,因为相比较于等于,全等不会让不确定状态向下传播。还有就是不允许不同位宽信号对比。

一,== 等于关系符的 真值表

== 等于真值表
==001xz
010xx
101xx
xxxxx
zxxxx

二,=== 等于关系符的真值表  (去除了 不定态)

=== 全等于关系符真值表
===01xz
01000
10100
x0010
z0001

module xx_2;
reg[3:0]a,b,c,d;
initialbegina=4'b0xx1;b=4'b0xx1;c=4'b0011;d=2'b11;$display(a==b);   //结果为  x$display(c==d);   //结果为  1$display(a===b);  //结果为  1$display(c===d);  //结果为  0   (=== 算了位数在规则里面)

4.逻辑运算符  &&  (逻辑与) ,  ||  (逻辑或), !(逻辑 非)

  重点:若操作数有不定状态,则逻辑运算的结果也是不定状态

a=4'b1110;    //a=1  (可以这样理解)
b=4'b0000;    //b=0  (可以这样理解)
c=2'b10;      //c=1   (可以这样理解)!a=0;
!b=1;
!c=0;a&&b=0;
a&&c=0;
b&&c=0;a||b=1;
a||c=0;
b||C=1;

5.按位操作符

按位取反“~”,按位与“&”,按位或“|”,按位异或“^”,按位同或“^~”

重点: 比较位置少的  自动补 0  比较

module bit
reg[2:0]a;
reg[3:0]b;
initialbegin// 因为 计算的时候一般是 位数相同的所以  a= 4'b   4位数a=4'b110;  // 运算的时候 在前面自动补一个 0  a=4'b0110b=4'b0001;$display("%b",~a);    //结果为 4'b1001$display("%b",~b);    //结果为 4'b1110$display("%b",a&b);   //结果为 4'b0000$display("%b",a|b);   //结果为 4’b0111$display("%b",a^b);   //结果为 4'b0111end
endmodule

6.移位操作符  << 左移   >>右移

a=4'b0110
$display("%b",a>>2);   //结果为 4'b0001
$display("%b",a<<2);   //结果为 4'b1000

7.条件运算符    (三目运算符)

module mux2(in1,in2,sel,out);
input [3:0]in1,in2;
input sel;
output [3:0]out;
reg [3:0]out;
assign out=(!sel)?in1:in2;
//sel为0时out等于inl,反之out等于in2
endmodule

8.连接和复制运算符

一,连接操作符:{信号1的某几位,......,信号n的某几位}

二,重复操作符{{}}:讲一个表达式放入最里面,外层放入复制因子。

module con11;
reg [2:0]a;
reg [3:0]b;
reg [7:0]c;
reg [4:0]d;
reg [5:0]e;initialbegina=3'b101;b=4'b1110;c={a,b};   //连接操作  a和b全部连接d={a[2:1],b[2:0]};   //连接操作  a的[2-1]位, b的 [2-0]位 连接,a在前面e={2{a}};// 复制操作符  复制两个a$display("%b",c);//结果7'b1011110$display("%b",d);//结果5'b10110$display("%b",e);//结果6'b101101end
endmodule

相关内容

热门资讯

家乡变化作文400字四年级(... 家乡变化作文400字四年级 篇一家乡变化我爱我的家乡,那是一个美丽而又宁静的地方。然而,自从几年前,...
一件高兴的事250作文四年级... 篇一:一件高兴的事今天,我要给大家讲一个让我非常高兴的事情。那天,我和妈妈一起去超市买东西。在超市里...
四年级写大自然的景色作文30... 四年级写大自然的景色作文300字 篇一大自然的美景大自然是我们共同的母亲,给予我们无尽的美景和宝贵的...
小小动物园四年级作文【精简6... 小小动物园四年级作文 篇一我参观了一个小小的动物园,里面有许多有趣的动物。首先,我看到了一只可爱的小...
小小动物园四年级作文(精简6... 小小动物园四年级作文 篇一我参观了一个小小的动物园,这是我第一次看到这么多不同种类的动物。动物园里有...
悔恨400字作文【实用3篇】 悔恨400字作文 篇一悔恨是一种深深的内心痛苦,当我们回首往事,发现自己的错误和过失时,心中不禁涌起...
我的奇思妙想四年级作文350... 我的奇思妙想四年级作文350字 篇一我曾经有一个奇思妙想,那就是创造一个可以让人们实现任何愿望的神奇...
小树长高了四年级作文【精简3... 小树长高了四年级作文 篇一四年级的时候,我们班上有一棵小树。那时候,它只有一米多高,细细的树干上长满...
青鸟的天空四年级作文(通用3... 青鸟的天空四年级作文 篇一我喜欢放学后的时光,因为那个时候我可以看到一只美丽的青鸟在蓝天中飞翔。每天...
四年级扫家作文400字【经典... 四年级扫家作文400字 篇一春天到了,我为了迎接新年的到来,特意要扫扫家里的卫生。我拿着扫把和簸箕,...
月球旅行记小学四年级作文60... 月球旅行记小学四年级作文600字 篇一我终于要去月球旅行啦!这是我人生中的第一次太空之旅。我非常激动...
四年级我感动的事500字作文... 四年级我感动的事500字作文 篇一饭堂阿姨的爱心举动我记得有一次,我在学校的饭堂吃午饭。当时,我刚刚...
沙滩飞车四年级作文【推荐3篇... 沙滩飞车四年级作文 篇一:我喜欢沙滩飞车沙滩飞车是一款非常流行的游戏,在游戏中我们可以驾驶各种各样的...
我最喜欢的电影四年级作文(优... 我最喜欢的电影四年级作文 篇一我最喜欢的电影是《疯狂动物城》。这是一部由迪士尼制作的动画电影,讲述了...
保姆机器人作文四年级300字... 篇一:保姆机器人的好处保姆机器人是一种能够帮助家庭照顾孩子和家务的智能机器人。它的出现给人们的生活带...
老师的话350字作文(优选3... 篇一:老师的话作为学生,我们每天都会听到老师的讲话。他们是我们的引路人,是我们的启发者,更是我们的朋...
捉蚊趣事作文四年级【优质6篇... 捉蚊趣事作文四年级 篇一我家的蚊子大战夏天来了,蚊子也来了。我家的蚊子实在太多了,每天晚上都被它们咬...
四年级描写家长作文300字(... 四年级描写家长作文300字 篇一家长是孩子成长道路上最重要的陪伴者和引路人。家长的关心、爱护和教导,...
小学四年级同步上册作文(通用... 小学四年级同步上册作文 篇一我的暑假计划暑假就要来了,我已经制定了一个丰富多彩的暑假计划。首先,我打...
孩子我为什么要打你四年级作文... 孩子我为什么要打你四年级作文 篇一最近,我读了一篇关于家庭教育的文章,深受启发。这篇文章告诉我,作为...