Verilog HDL常用建模方式——《Verilog与数字ASIC设计基础》读书笔记(四)

Verilog HDL的基本功能之一是描述可综合的硬件逻辑电路。所谓综合(Synthesis)是指将Verilog HDL程序、原理图等设计输入翻译成由与门(and)、或门(or)、非门(not)等基本逻辑单元组成的门级连接,并根据设计目标和要求对门级逻辑连接进行优化,得到优化的门级网表文件。

  Verilog HDL主要有三种建模方式:

  4.1结构级建模

  结构级建模包括门级建模和分层建模两种情况。门级建模就是将逻辑电路图用Verilog HDL规定的文本语言表示出来,即调用Verilog HDL中内置的基本门级元件(Gate Level Primitives,门级源语)描述逻辑图中的元件以及元件之间的连接关系。分层次就是将一个数字系统划分为多个组成模块,再分别对每个模块建模,然后将这些模块组合成一个总模块,完成所需的功能。

Verilog HDL中内置了12个基本门级元件模型,门级元件的输出、输入必须为网类型的变量。当使用这些元件逻辑仿真时,仿真软件会根据程序描述给每个元件中变量分配逻辑0,逻辑1,不确定态x和高阻态z这4个值之一。

  这些门可分为:多输入门,多输出门,三态门。

  4.2数据流建模

  对于基本单元逻辑电路,使用Verilog HDL提供的门级元件模型描述电路非常方便,但随着电路复杂性的增加,当使用的逻辑门较多时,使用Verilog HDL门级描述的工作效率就很低。数据流建模的抽象级别介于门级和行为级之间,它是行为级建模的一种形式,组合电路的逻辑行为最好使用数据流建模方式。

  数据建模使用的基本语句是连续赋值语句,连续赋值语句用于对wire型变量进行赋值,它由关键词assign开始,后面跟着操作数和运算符组成的逻辑表达式。

  例如:

  wire  a,b,sel,out;  //declare four wires variables

  assign out = (a& (~b)) | (b & sel);  //a continuous assignment

  连续赋值语句的执行过程是:只要逻辑表达式右边变量的逻辑值发生变化,则等式右边表达式的值会立即被计算出来并赋给左边的变量。注意:在assign语句中,左边变量的数据类型必须是wire型。

  4.3行为级建模

  行为级建模就是以抽象的形式描述数字逻辑电路的功能和算法,在Verilog HDL 中,行为级建模主要使用由关键词initialalways定义的两种结构类型的描述语句。一个模块内部可以包含多个initial或always语句,仿真时这些语句同时执行,即与它们在模块内部排列的顺序无关,仿真都从0时刻开始执行。initial语句主要是一条面向仿真的过程语句,不能用来描述硬件电路的功能。

  在always结构型语句内部有一系列过程赋值语句,用来描述电路的行为(功能)。过程性赋值语句包括在结构型的语句内部使用的逻辑表达式、条件语句(if-else)、多路分支语句(case-endcase)和循环语句等。

  顺序语句块就是由块标识符begin...end保卫界定的一组行为描述语句,其作用是:相当于给块中的这组行为描述语句进行打包处理,使之在形式上与一条语句一致。在这个模块内部的各条语句按照书写的先后顺序依次执行。在Verilog HDL中,可以给每个语句块取一个名字,方法是:在关键词begin后面加上一个冒号,之后给出名字即可。取了名字的块被称为有名块

【转】Verilog HDL常用建模方式——《Verilog与数字ASIC设计基础》读书笔记(四)的更多相关文章

  1. Verilog HDL常用综合语法

    前面已经记录了一些组成Verilog的基本组成,可以用这些基本组成来构成表达式.这一节,就来记录一下把这些表达式构成一个文件的各种行为描述语句. ①这里用Verilog基本要素进行的行为描述主要是针对 ...

  2. Verilog HDL常用的行为仿真描述语句

    一.循环语句 1.forever语句 forever语句必须写在initial模块中,主要用于产生周期性波形. 2.利用for.while循环语句完成遍历 for.while语句常用于完成遍历测试.当 ...

  3. Sublime Text 2 和 Verilog HDL

    Sublime Text 2 和 Verilog HDL Date  Fri 04 July 2014 Tags Sublime Text / Vivado Sublime Text 代码编辑器之于程 ...

  4. 【Verilog HDL】赋值语句之阻塞赋值方式与非阻塞赋值方式

    刚开始接触Verilog HDL语言时,这种硬件描述语言有一点与软件的程序设计语言直观上的最大区别大概就是这个赋值语句了(这里只是强调直观上的最大区别,事实上的最大区别并非如此). Verilog H ...

  5. 【黑金教程笔记之003】【建模篇】akuei2的Verilog hdl心路

    Verilog hdl不是“编程”是“建模” Verilog hdl语言是一种富有“形状”的语言. 如果着手以“建模”去理解Verilog hdl语言,以“形状”去完成Verilog hdl语言的设计 ...

  6. 关于初次使用Verilog HDL语言需要懂的基本语法

    关于初次使用Verilog HDL语言需要懂的基本语法 1.常量 数字表达式全面的描述方式为:<位宽><进制><数字> 8’b10101100,表示位宽为8的二进制 ...

  7. FPGA Verilog HDL 系列实例--------步进电机驱动控制

    [连载] FPGA Verilog HDL 系列实例 Verilog HDL 之 步进电机驱动控制 步进电机的用途还是非常广泛的,目前打印机,绘图仪,机器人等等设备都以步进电机为动力核心.那么,下面我 ...

  8. Verilog HDL的程序结构及其描述

    这篇博文是写给要入门Verilog HDL及其初学者的,也算是我对Verilog  HDL学习的一个总结,主要是Verilog HDL的程序结构及其描述,如果有错,欢迎评论指出. 一.Verilog ...

  9. Verilog HDL程序设计——基本要素

    Verilog基本上熟悉了,继续整理一下Verilog的学习笔记吧.前面记载了Verilog的结构,写Verilog的结构有了,但是该怎么写呢?在写之前就得了解一下Verilog的一些基本要素了,也就 ...

随机推荐

  1. Redis 之深入江湖-复制原理

    一.前言 上一篇文章Redis 之复制-初入江湖中,讲了关于Redis复制配置,如:如何建立配置.如何断开复制.关于链接的安全性等等,那么本篇文章将深入的去说一下关于Redis复制原理,如下: 复制过 ...

  2. Codeforces 862D. Mahmoud and Ehab and the binary string (二分)

    题目链接:Mahmoud and Ehab and the binary string 题意: 一道交互题,首先给出一个字符串的长度l.现在让你进行提问(最多15次),每次提问提出一个字符串,会返回这 ...

  3. Python 安装与专属 IDE_Pycharm 安装配置、永久激活,赠汉化版!

    这个为什么说是一次学生时代的经历呢,我的出发点并没有是为了吊胃口.确实,这个Python小应用,只能在学生时代用得着吧,尤其是高中和大学,如果你没有想到也没关系,看完我下面说的就会明白了. 对红蜘蛛软 ...

  4. python实战——教你用微信每天给女朋友说晚安

    但凡一件事,稍微有些重复.我就考虑怎么样用程序来实现它. 这里给各位程序员朋友分享如何每天给朋友定时微信发送”晚安“,故事,新闻,等等··· ··· 最好运行在服务器上,这样后台挂起来更方便. 准备 ...

  5. Python标准库学习之zipfile模块

    ZipFile模块里有两个非常重要的class, 分别是 ZipFile和ZipInfo. ZipFile是主要的类,用来创建和读取zip文件,而ZipInfo是存储的zip文件的每个文件的信息的. ...

  6. Python学习过程笔记整理(三)

    函数 -函数使用 -函数需要先定义,定义不会执行函数 -使用函数,俗称调用 -定义函数 -格式:def 函数名称(参数=默认值):,函数名称不能用大驼峰,参数可以没有 -调用函数 -格式:函数名(参数 ...

  7. 使用云负载时将http的请求转发至https时报错:“ERR_TOO_MANY_REDIRECTS”!

    问题描述: 新业务正式环境部署,使用云负载(有http监听也有https监听)在我向我的 Web 服务器添加重定向逻辑后,我的网站停止工作,并且我收到错误 ERR_TOO_MANY_REDIRECTS ...

  8. 【转】Linux - CentOS 7网络配置

    Linux - CentOS 7网络配置 https://blog.csdn.net/J080624/article/details/78083988   安装完VM后,需要进行网络配置.第一个目标为 ...

  9. Linux命令的那些事(一)

    回顾一下前文,三大主流操作系统 windows做的最好(更准确最早做图形化界面是windows)其实是图形化界面占有90%的市场份额(PC(个人电脑)机的市场)但是现在发展图形界面做的较好其实Unix ...

  10. kubernetes高可用设计-CA,etcd

    环境准备: master01:192.168.150.128 master02:192.168.150.130 master03:192.168.150.131 node01:192.168.150. ...