Verilog的三种描述方式(结构化描述、数据流描述、行为级描述对电路功能的描述有三种方式:结构化描述、数据流描述、行为级描述

这篇具有很好参考价值的文章主要介绍了Verilog的三种描述方式(结构化描述、数据流描述、行为级描述对电路功能的描述有三种方式:结构化描述、数据流描述、行为级描述。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Verilog的三种描述方式(结构化描述、数据流描述、行为级描述对电路功能的描述有三种方式:结构化描述、数据流描述、行为级描述。三种描述方式抽象级别不同,各有优缺点,相辅相成,需要配合使用。

目录

一、结构化描述

1、概念

2、特点

3、示例

真值表:

电路抽象:

实现代码:

测试文件:

仿真结果:

实现电路:

二、数据流描述

1、概念

2、特点

3、示例

实现代码:

实现电路:

三、行为级描述

1、概念

2、特点

3、示例

实现代码:

电路实现:

一、结构化描述
1、概念
结构化描述的抽象级别最低,是最接近实际硬件结构的描述方式。

2、特点
直接采用结构化描述语句描述,需要描述实现功能所需数字电路的逻辑关系,及其复杂;
结构化描述语句常用于层次化模块间的调用、以及ip核的例化等;
3、示例
为简单起见,以3人投票表决器为例,按照结构化描述方式实现功能:
————————————————
真值表:
3人投票表决器,只有2人及两人以上同一,输出才为1Verilog的三种描述方式(结构化描述、数据流描述、行为级描述对电路功能的描述有三种方式:结构化描述、数据流描述、行为级描述
电路抽象:
要按照结构化描述来实现这一功能,首先应进行电路抽象。即先抽象出用何种电路实现这一功能,才能进行随后的描述。

经过卡诺图化简,拟采用与、非组合逻辑实现这一功能,即:

O = AB+AC+BC

实现代码:`timescale 1ns / 1ps
//
// Company:
// Engineer: CLL guoliang
//
// Create Date: 2020/04/22 17:53:51
//
//

module vote(

);

wire A;
wire B;
wire C;
reg [2:0]cnt;
wire O;
// 激励设置
initial
begin
cnt = 3’b000;
repeat(10) #10 cnt = cnt+3’b1;
end
assign {C,B,A} = cnt;

//实例化
vote1 minst(
.A(A),
.B(B),
.C©,
.O(O)
);
endmodule
`timescale 1ns / 1ps
//
// Company:
// Engineer: CLL guoliang
//
// Create Date: 2020/04/22 17:53:51
//
//

module vote(

);

wire A;
wire B;
wire C;
reg [2:0]cnt;
wire O;
// 激励设置
initial
begin
cnt = 3’b000;
repeat(10) #10 cnt = cnt+3’b1;
end
assign {C,B,A} = cnt;

//实例化
vote1 minst(
.A(A),
.B(B),
.C©,
.O(O)
);
endmodule
`timescale 1ns / 1ps
//
// Company:
// Engineer: CLL guoliang
//
// Create Date: 2020/04/22 17:53:51
//
//

module vote(

);

wire A;
wire B;
wire C;
reg [2:0]cnt;
wire O;
// 激励设置
initial
begin
cnt = 3’b000;
repeat(10) #10 cnt = cnt+3’b1;
end
assign {C,B,A} = cnt;

//实例化
vote1 minst(
.A(A),
.B(B),
.C©,
.O(O)
);
endmodule
仿真结果:
Verilog的三种描述方式(结构化描述、数据流描述、行为级描述对电路功能的描述有三种方式:结构化描述、数据流描述、行为级描述实现电路:
Verilog的三种描述方式(结构化描述、数据流描述、行为级描述对电路功能的描述有三种方式:结构化描述、数据流描述、行为级描述可以看出,功能的电路实现与设计符合;

二、数据流描述
1、概念
数据流描述抽象级别较高,不再需要清晰的刻画具体的数字电路,而比较直观的表达底层逻辑。其又称为寄存器传输级(RTL)描述。

2、特点
从数据的变换和传送角度描述模块
抽象级别适中,即显示的表达了模块的行为,又隐式的刻画了模块的电路结构;
3、示例
同样以3人投票表决器为例,按照数据流描述方式实现功能:

实现代码:
`timescale 1ns / 1ps
//
// Company:
// Engineer: CLL

// //

module vote2(
input A,
input B,
input C,
output O
);

// vote
assign O = A&B | A&C | B&C;
endmodule
实现电路:
Verilog的三种描述方式(结构化描述、数据流描述、行为级描述对电路功能的描述有三种方式:结构化描述、数据流描述、行为级描述三、行为级描述
1、概念
行为级描述抽象级别最高,概括能力最强。

2、特点
概括能力及强,不关注电路实现,只描述数据逻辑。
抽象级别高,综合效率低,电路可控性差;
3、示例
同样以3人投票表决器为例,按照数据流描述方式实现功能:

实现代码:
`timescale 1ns / 1ps
//
// Company:
// Engineer:
//
// Create Date: 2020/04/22 18:25:40
// Design Name:
// Module Name: vote3
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//

module vote3(
input A,
input B,
input C,
output reg O
);

// vote
always@(*)
begin
case({A,B,C})
3’b000:begin
O = 1’b0;
end
3’b001:begin
O = 1’b0;
end
3’b010:begin
O = 1’b1;
end
3’b011:begin
O = 1’b1;
end
3’b100:begin
O = 1’b0;
end
3’b101:begin
O = 1’b1;
end
3’b110:begin
O = 1’b1;
end
3’b111:begin
O = 1’b1;
end
default:begin
O = 1’b0;
end
endcase
end
endmodule
电路实现:
Verilog的三种描述方式(结构化描述、数据流描述、行为级描述对电路功能的描述有三种方式:结构化描述、数据流描述、行为级描述文章来源地址https://www.toymoban.com/news/detail-444612.html

到了这里,关于Verilog的三种描述方式(结构化描述、数据流描述、行为级描述对电路功能的描述有三种方式:结构化描述、数据流描述、行为级描述的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 第五章 结构化设计

    一种软件开发活动,定义实现需求规约所需的软件结构。 结构化设计分为: (1)总体设计:确定系统的整体模块结构,即系统实现所需要的软件模块以及这些模块之间的调用关系。 (2)详细设计:详细描述模块。 体系结构设计(MSD) 接口设计 数据设计 实现软件设计的目标对结

    2024年02月08日
    浏览(32)
  • elasticsearch结构化查询

    在上一篇中我们介绍了DSL相关的知识,接下来我们将会学习elasticsearch的结构化查询,同时也实践一下上一篇的DSL的查询用法 从《Elasticsearch权威指南》上摘取部分解释如下: 从上面的定义我们可以看出来结构化查询最重要的就是是否匹配么人并不是很关心相关性和分值计算。

    2024年02月01日
    浏览(23)
  • 【numpy基础】--结构化

    目前为止,介绍的 numpy 数组基本都是关于数值的,其实, numpy 本身就是一个用于数值计算的基础库。 不过,除了数值计算之外, numpy 也能够支持 结构化数组 。 numpy 的数组为了提高计算性能,要求数组的数据类型要一致。 但是现实情况下,我们经常遇到不是纯数值的数组

    2024年02月12日
    浏览(23)
  • 结构化流的介绍

    目录 有界数据和无界数据 有界数据  无界数据  结构化流 基本介绍 入门案例 结构化流的编程模型 数据结构 数据源(Source) File Source Kafka Source(Spark 和 Kafka 整合) 整合Kafka准备工作 从kafka中读取数据 流式处理 批处理  数据写入Kafka中 流式处理 批处理 有界数据 数据有固定的开

    2024年01月15日
    浏览(40)
  • WPF 界面结构化处理

    WPF 框架是开源的,但是不能跨平台,可以使用MAUI,这个框架可以跨平台,WPF源码可以在github上下载,下载地址:https://gitbub.com/dotnet/wpf。 框架结构 如图 XAML:eXtensible Application Markup Language的英文缩写,相应的中文名称为:可扩展应用程序标记语言。 命名空间 默认 映射:x/

    2024年02月13日
    浏览(36)
  • SQL:结构化查询语言

    创建一张表并插入数据: 以下常用函数以MySQL为例,其它数据库类似

    2024年02月06日
    浏览(26)
  • elasticsearch结构化查询(一)

    在上一篇中我们介绍了DSL相关的知识,接下来我们将会学习elasticsearch的结构化查询,同时也实践一下上一篇的DSL的查询用法 从《Elasticsearch权威指南》上摘取部分解释如下: 从上面的定义我们可以看出来结构化查询最重要的就是是否匹配么人并不是很关心相关性和分值计算。

    2024年02月05日
    浏览(31)
  • MATLAB结构化程序设计

    1 、实验目的: 1)巩固并加深对MATLAB语言程序设计知识的理解; 2)掌握和提高MATLAB语言编程和程序调试的基本技能; 3)进一步理解和运用结构化程序设计的思想和方法; 4)提高运用MATLAB语言解决实际问题的能力。 2-1)、分别使用for语句和while语句求1~100的和。 while语句

    2023年04月08日
    浏览(21)
  • Structured Concurrency:结构化并发

    https://ericniebler.com/2020/11/08/structured-concurrency/ 是什么:一种确保子操作在父操作之前完成的方式,类似函数在调用函数之前完成。 最典型的结构化并发:C++20的协程 意义:它通过使异步生存期与普通C++词法作用域相对应,为异步程序带来了现代C++风格,并且不需要引用计数(

    2024年02月05日
    浏览(37)
  • 【案例】--非结构化数据中台案例

    最近接触一个平台架构的讨论,公司需要一个非结构化数据中台,理念是能够满足存储随时变换的非结构化数据,另外引入低代码思想。由于非结构化数据是未知的,不同业务的数据是不同,为了更好的使用,低代码就需要一种方案,在尽量不开发代码下满足相关需求变化,

    2024年02月10日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包