HDL语言的三种描述方式:结构化描述方式、数据流描述方式、行为级描述方式

HDL语言的描述方式

当我们使用HDL代码在描述硬件功能时,主要有三种描述方式,即结构化描述方式、数据流描述方式、行为级描述方式。在平时编程时,可根据实际情况及个人喜好选择其中一种或者几种混合在一起进行自己的HDL代码编写。


一、结构化描述方式

结构化描述方式时抽象级别最低的描述方式,但同时也是最接近于实际硬件的描述方式。采用结构化描述方式来编写HDL代码,其思路就跟在面包板上搭建数字电路是一样的,编程就是一个一个的器件相连。
但结构化描述不常用,原因有二:
1.使用结构化描述方式不宜描述功能复杂电路。因为我们大脑不仅要抽象出电路逻辑功能,还要抽象出具体实现形式。
2.不同FPGA厂商提供的软件集成开发环境中的原语使用名称是不一样的,代码编写起来不通用。
但结构化描述方式也有优势。父模块调用子模块的过程只能通过结构化的描述方式来实现。
言而总之,结构化描述方式的特征就是实例化语句。
一个例子
输入abcd分别为一比特逻辑,当ab不相等且cd不相等时输出o为1,否则输出o为0.要用结构化描述方式编写代码,必须先抽象出数字电路结构(即具体用到什么门电路)。
比如说采用下图的门电路(答案不唯一)

这里采用两个异或门和一个与门。
verilog实现:

module aa(
input a,b,c,d,
output o
);
wire tmp0,tmp1;
XOR2 m0(.O(tmp0),.I0(a),.I1(b));
XOR2 m1(.O(tmp1),.I0(c),.I1(d));
AND m2(.O(o),.I0(tmp0),.I1(tmp1));
endmodule

二、数据流描述方式

数据流描述方式,又可称为寄存器传输级描述,他主要从数据的变换和传送角度来描述设计模块,并且使用的语句多为和硬件行为一致的并行语句。
数据流描述方式描述上例。

module aa(
input a,b,c,d,
output o
);
wire tmp0,tmp1;
assign tmp0 = a ^ b;
assign tmp1 = c ^ d;
assign o = tmp0 & tmp1;
endmodule

对比结构化描述方式,数据流描述方式清晰地阐明数据从输入到输出的传递情况。但是队医tmp0,tmp1,o却没有显式地规定一定要用什么具体电路去实现。比如,数据流的描述只说明tmp0可以=由ab异或产生,但并没有说明用什么门电路来实现异或操作。是直接一个异或门,还是使用与或非搭建)。这一部分工作交给编译器。
到这里,你可能想问前面结构化描述方式就说明异或操作就用一个异或门来实现了吗?况且FPGA基本单位也不是一个个的与或非异或门啊。其实前面结构化描述方式使用的原语。类似于一个IP核,核内描述就能够说明使用的是一个什么门电路。

三、行为级描述方式

行为级描述方式的主要载体就是串行语句,例如ifelse同时辅以并行语句用以描述各个算法之间的连接关系

module aa(
input a,b,c,d,
output o
);

always@(a,b,c,d)
if(a != b && c != d)
	o = 1'b1;
else 
	0 = 1'b0;
	
endmodule

行为级描述简直就是自然语言的直译啊。所以行为级描述抽象级别最高、概括能力也最强。 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 硬件描述语言HDL)设计中,常用的描述方式有:结构化硬件描述语言(Structured HDL)、调制解调器描述语言(Modeling Language)、状态机描述语言(State Machine Description Language)和非结构化硬件描述语言(Unstructured HDL)。 ### 回答2: 在HDL(硬件描述语言)设计中,常用的几种描述方式包括: 1. Verilog:Verilog是一种高硬件描述语言,适用于电子系统设计和数字电路设计。Verilog描述方式类似于C语言,它通过模块(module)的组合实现电路的功能。Verilog可以描述时序逻辑和组合逻辑,广泛用于数字电路设计和验证。 2. VHDL:VHDL(VHSIC硬件描述语言)是一种可编程的硬件描述语言,适用于数字电路、模拟电路和混合电路的设计。VHDL描述方式比较详细和严谨,可以描述电路的结构、行为和时序。VHDL具有强大的仿真和综合功能,广泛应用于电子系统设计和数字电路设计。 3. SystemVerilog:SystemVerilog是Verilog的扩展版本,引入了一些新的特性和语法,使得它更适用于硬件设计和验证。SystemVerilog支持面向对象的设计,可以描述复杂的硬件系统。它还提供了强大的断言和约束来验证设计的正确性。 4. C/C++:在一些高综合工具中,可以使用C/C++语言进行HDL设计。C/C++可以更方便地描述算法和控制逻辑,对于复杂的处理器设计和通信协议实现有很大优势。C/C++描述方式适用于软硬件协同设计和嵌入式系统的开发。 这些描述方式可以根据设计需求和开发工具的支持来选择。每种描述方式都有自己的特点和适用范围,设计工程师可以根据具体情况选择最适合的描述方式来完成HDL设计。 ### 回答3: HDL(硬件描述语言)设计是一种用于描述和设计数字电路的方法。常用的几种HDL描述方式包括: 1.行为描述方式行为描述方式是一种较高别的描述方式,它描述了数字电路的功能和操作。在行为描述中,不考虑电路的内部细节和逻辑结构,主要关注电路的输入、输出以及它们之间的关系。常见的行为描述语言包括VHDL和Verilog。 2.结构描述方式:结构描述方式是一种较低别的描述方式,它描述了数字电路的具体的逻辑结构和组件连接关系。在结构描述中,使用逻辑门、触发器、多路选择器等基本元件来组合和连接构成电路。常见的结构描述语言包括VHDL和Verilog。 3.数据流描述方式数据流描述方式是一种中描述方式,它描述了数字电路中数据的流动和操作。在数据流描述中,通过指定数据的进出口和操作函数,来描述电路中数据的流动路径。常见的数据流描述语言包括VHDL和Verilog。 4.寄存器传输描述方式:寄存器传输描述方式是一种具有时序特性的描述方式,它描述了数字电路中的时钟、寄存器和数据传输。在寄存器传输描述中,通过描述时钟控制和寄存器的输入输出关系,来描述和分析电路的时序行为。常见的寄存器传输描述语言包括VHDL和Verilog。 总之,HDL设计中常用的几种描述方式包括行为描述、结构描述数据流描述和寄存器传输描述。使用不同的描述方式,可以从不同的角度来描述和设计数字电路,以满足不同的设计需求和要求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值