精华内容
下载资源
问答
  • verilog行为级描述结构级描述

    千次阅读 2018-01-09 14:37:11
     ①行为级描述:侧重对模块行为功能的抽象描述。  ②结构级描述:侧重对模块内部结构实现的具体描述。 2、行为级描述  ①描述体的组成  ※由多个并行运行的过程块组成。  ※过程块由过程语句...
    1、在使用verilog描述电路时,既可以进行行为级的描述,也可以进行结构级的描述。
          ①行为级描述:侧重对模块行为功能的 抽象 描述
          ②结构级描述:侧重对模块内部结构实现的 具体 描述
    2、行为级描述
         ①描述体的组成
          ※由多个 并行运行的 过程块组成。
          ※过程块由 过程语句(initial和always)和 块语句(串行块begin-end和并行块fork-join)组成。
          ※块语句由 过程赋值语句和 高级程序语句构成。
                ◇过程赋值语句:阻塞与非阻塞式赋值。
                ◇高级程序语句:C语言如if-else、case、while、wait等组成。
         ②行为级描述模块的构成图
        
     Verilog Code 
    //例:全加器行为级描述
    module fadder(sum,a,b,cin);//模块定义
    output sum,cout;//端口声明
    input a,b,cin;//端口声明
    reg sum,cout;//数据类型声明

    always @(a or b or cin)//过程语句
       
        begin//高级程序语句
          sum=a^b^cin;//过程赋值语句
          cout=(a&b)|(b&cin)|(a&cin);//过程赋值语句
        end
    endmodule//结束行
     
    3、结构级描述
        ①描述体的组成
            ※ 门级描述:对由基本逻辑门(and、or、not、xor等)互连而成的具有一定功能的电路模块的描述。
            ※ 结构级描述:将上述逻辑门用一个个功能模块替换,就拓展到一般意义的结构级描述。
        ②结构级描述模块
          例:全加器门级
          
     Verilog Code 
    //例:全加器结构级描述
    module fadder(sum,a,b,cin);//模块定义
        output sum,cout;//端口声明
        input a,b,cin;//端口声明
        /*******门级互连*****/
        xor U0(sum,a,b,cin);
        and U1(net1,a,b);
        and U2(net2,a,cin);
        and U3(net3,b,cin);
        or U4(cout,net1,net2,net3);
    endmodule//结束行
    展开全文
  • 行为级描述:侧重对模块行为功能的抽象描述。 ②结构级描述:侧重对模块内部结构实现的具体描述。 2、行为级描述 ①描述体的组成 ※由多个并行运行的过程块组成。 ※过程块由过程语句(initialalways...
    1、在使用verilog描述电路时,既可以进行行为级的描述,也可以进行结构级的描述。
          ①行为级描述:侧重对模块行为功能的 抽象 描述
          ②结构级描述:侧重对模块内部结构实现的 具体 描述
    2、行为级描述
         ①描述体的组成
          ※由多个 并行运行的 过程块组成。
          ※过程块由 过程语句(initial和always)和 块语句(串行块begin-end和并行块fork-join)组成。
          ※块语句由 过程赋值语句和 高级程序语句构成。
                ◇过程赋值语句:阻塞与非阻塞式赋值。
                ◇高级程序语句:C语言如if-else、case、while、wait等组成。
         ②行为级描述模块的构成图
        
     Verilog Code 
    //例:全加器行为级描述
    module fadder(sum,a,b,cin);//模块定义
    output sum,cout;//端口声明
    input a,b,cin;//端口声明
    reg sum,cout;//数据类型声明

    always @(a or b or cin)//过程语句
       
        begin//高级程序语句
          sum=a^b^cin;//过程赋值语句
          cout=(a&b)|(b&cin)|(a&cin);//过程赋值语句
        end
    endmodule//结束行
     
    3、结构级描述
        ①描述体的组成
            ※ 门级描述:对由基本逻辑门(and、or、not、xor等)互连而成的具有一定功能的电路模块的描述。
            ※ 结构级描述:将上述逻辑门用一个个功能模块替换,就拓展到一般意义的结构级描述。
        ②结构级描述模块
          例:全加器门级
          
     Verilog Code 
    //例:全加器结构级描述
    module fadder(sum,a,b,cin);//模块定义
        output sum,cout;//端口声明
        input a,b,cin;//端口声明
        /*******门级互连*****/
        xor U0(sum,a,b,cin);
        and U1(net1,a,b);
        and U2(net2,a,cin);
        and U3(net3,b,cin);
        or U4(cout,net1,net2,net3);
    endmodule//结束行

    转载于:https://www.cnblogs.com/pdf000/p/7497279.html

    展开全文
  • Verilog对电路功能的描述有三种方式:结构化描述、数据流描述、行为级描述。三种描述方式抽象级别不同,各有优缺点,相辅相成,需要配合使用。 目录 一、结构化描述 1、概念 2、特点 3、示例 真值表: 电路...

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

    目录

    一、结构化描述

    1、概念

    2、特点

    3、示例

    真值表:

    电路抽象:

    实现代码:

    测试文件:

    仿真结果:

    实现电路:

    二、数据流描述

    1、概念

    2、特点

    3、示例

    实现代码:

    实现电路:

    三、行为级描述

    1、概念

    2、特点

    3、示例

    实现代码:

    电路实现:

    四、参考文献


    一、结构化描述

    1、概念

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

    2、特点

    • 直接采用结构化描述语句描述,需要描述实现功能所需数字电路的逻辑关系,及其复杂;
    • 结构化描述语句常用于层次化模块间的调用、以及ip核的例化等;

    3、示例

    为简单起见,以3人投票表决器为例,按照结构化描述方式实现功能:

    真值表:

    3人投票表决器,只有2人及两人以上同一,输出才为1

    ABCO
    0000
    0010
    0100
    0111
    1000
    1011
    1101
    1111

     

     

     

     

     

    电路抽象:

    要按照结构化描述来实现这一功能,首先应进行电路抽象。即先抽象出用何种电路实现这一功能,才能进行随后的描述。

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

    O = AB+AC+BC

    实现代码:

    `timescale 1ns / 1ps
    //
    // Company: 
    // Engineer: CLL guoliang
    // 
    // Create Date: 2020/04/22 17:41:37
    // Additional Comments:
    // 
    //
    
    
    module vote1(
        input A,
        input B,
        input C,
        output O
        );
    // mid signal
    wire midAB;
    wire midAC;
    wire midBC;
    
    // vote
    AND2 m0(.O(midAB),.I0(A),.I1(B));
    AND2 m1(.O(midAC),.I0(A),.I1(C));
    AND2 m2(.O(midBC),.I0(C),.I1(B));
    
    OR3 m3(.O(O),.I0(midAB),.I1(midBC),.I2(midAC));
    
    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(C),
        .O(O)
    );
    endmodule
    

    仿真结果:

    实现电路:

    可以看出,功能的电路实现与设计符合;

    二、数据流描述

    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
    

    实现电路:

    三、行为级描述

    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
    

    电路实现:

    四、参考文献

    《FPGA之道》

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

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

    1.结构化描述方式

    结构化描述方式时抽象级别最低的描述方式,但同时也是最接近于实际硬件的描述方式。采用结构化描述方式来编写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
    

    2.数据流描述方式

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

    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核,核内描述就能够说明使用的是一个什么门电路。

    3.行为级描述

    行为级描述方式的主要载体就是串行语句,例如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
    

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

    摘自《FPGA之道》

    展开全文
  • Verilog的结构化、数据流、行为级描述方式 概述: verilog通常可以使用三种不同的方式描述模块实现的逻辑功能:结构化、数据流、行为描述方式。...行为级描述方式: 是使用过程块语句结构(always)比较抽象的高
  • 一、前言 verilog通常可以使用三种不同的方式描述模块实现的逻辑功能: ...行为级描述方式: 是使用过程块语句结构(always)比较抽象的高级程序语句对电路的逻辑功能进行描述。 二、举例 要实现的逻辑功
  • 行为级和RTL级的区别

    万次阅读 2017-11-30 09:05:33
    RTL级,register transfer level,指的是用寄存器这一级别的描述方式来描述电路的数据流方式;而Behavior级指的是仅仅描述电路的功能而可以...鉴于这个区别,RTL级描述的目标就是可综合,而行为级描述的目标就是实现特
  • Verilog语言可以有多种方式来描述硬件,同时,使用这些描述方式,又可以在多...行为描述:使用always语句或initial语句块中的过程赋值语句(推荐掌握) 结构描述:实例化已有的功能模块或原语  以一个4位全...
  • VHDL中的行为描述、数据流(RTL)描述和结构描述区别主要在于结构体。 1.行为描述 行为描述主要通过算数运算、逻辑关系运算传输延时等语句来实现,如+、&等操作。 在结构体中,我们可以看出其实现的功能、...
  • 鉴于这个区别,RTL级描述的目标就是可综合,而行为级描述的目标就是实现特定的功能而没有可综合的限制。 行为级是RTL的上一层,行为级是最符合人类逻辑思维方式的描述角度,一般基于算法,用C/C++来...
  • fpga设计中行为级和RTL级的区别

    千次阅读 2019-11-11 22:39:21
    鉴于这个区别,RTL级描述的目标就是可综合,而行为级描述的目标就是实现特定的功能而没有可综合的限制。 行为级是RTL的上一层,行为级是最符合人类逻辑思维方式的描述角度,一般基于算法,用C...
  • 1.1 门级描述和数据流描述 这两种描述的时候,使用默认的wire即可。 这两种描述方式,本质上都是直接使用逻辑门 门级描述是显式地使用了门级原语 数据流描述其实是隐式地使用门级原语,因为他是直接描述数据在...
  • RTL级,register transfer level,指的是用寄存器这一级别的描述方式来描述电路的数据流方式;而Behavior级指的是仅仅描述电路的功能而...鉴于这个区别,RTL级描述的目标就是可综合,而行为级描述的目标就是实...
  • 行为级描述——>RTL级描述——>门级网标——>物理版图 1.1 Behavior级 Behavior级,即行为级,指的是仅仅描述电路的功能,可以采用任何Verilog语法的描述形式,行为级的目标是实现特定的功能,而没有可综合...
  • 行为级、RTL级、门级

    千次阅读 2019-04-27 14:50:04
    行为级行为级是RTL级的上一层。最符合人类思维的描述方式。主要用于快速验证算法的正确性,不关注电路的具体结构,不一定可以综合成实际电路结构。注重算法。以直接赋值的形式进行,只关注结果。常采用大量运算,...
  • 结构描述方式(结构级建模)就是将硬件描述成一个分级子模块系统(分级子模块互连网络)的一种描述方式。任何硬件电路在结构上都是由一级级不同层次的若干功能单元组成的,所以结构描述方式很适合用来对电路结构特点...
  • Verilog自学:关于门级,数据流级,行为级建模 我是桂林理工大三苦逼通信学子????,在前些日子,看到宿舍的电信学霸在用verilog写电路,不由得心生神往。于是便开始了我的verilog自学。这篇文章也算是写写我自学的...
  • 第五章 行为级建模

    2021-04-21 10:48:08
    行为级描述是工业上采用的一种非常重要的描述方式。它描述的是逻辑电路的输入-输出模型。 5.8 行为级建模方式的比较 1)连续赋值; 2)数据流/寄存器传输级逻辑(RTL); 3)行为算法的建模方式; 用电路输入-输出...
  • 在简单介绍当前可测试性综合技术的现状后,提出了采用“VHDL进,VHDL出”的方式进行行为级可测试性综合的流程,并提出了一个新的行为级可测试性分析算法,然后讨论了测试点的选择、可测试结构的规范化描述和自动插入...
  • Verilog支持设计者从算法的角度,即从电路外部行为的角度对其进行描述,在这个层次上设计数字电路更类似于使用C语言编程。
  • 方法:2018年4月至2018年5月在尼日利亚西南部埃基蒂州伊多埃基蒂市的一家三医疗机构中对106名医生164名护士进行了横断面描述性研究。 从医院的医生护士名单中通过抽签进行了简单的随机抽样技术,以选择参与...
  • 当我们使用Verilog HDL代码来描述硬件功能的时候,可采用三种不同方式或混合方式对设计进行建模,这些方式包括:结构化方式—使用门模块实例语句描述建模;数据流方式—使用连续赋值语句方式建模;行为描述方式—...
  • 2、Verilog语言之行为级建模

    千次阅读 2019-10-31 12:56:54
    行为级建模 目录 行为级建模 2.1、数据流描述 2.2、结构化过程语句 (1)initial语句 (2)always语句 (3)时序控制 (4)过程赋值语句块 (5)顺序语句块与并行语句块 2.3、条件语句 2.4、分支语句...
  • FPGA学习笔记(三)——行为级建模

    千次阅读 2019-05-29 20:25:04
    行为级建模的抽象程度更高,更加偏向与C语言,设计者更加偏向于电路的整体结构和模块所能实现的功能。 3 行为级建模的语言基础? initial 语句:所有的initial语句内的语句构成一个独立的块,从0时刻开始执行...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 174,197
精华内容 69,678
关键字:

结构级和行为级描述区别