嵌入式开发Verilog教程(二)——Verilog HDL设计方法概述

嵌入式开发Verilog教程(二)——Verilog HDL设计方法概述

  • 前言
  • 一、Verilog HDL语言简介
    • 1.1 Verilog HDL语言是什么
    • 1.2 Verilog HDL设计复杂数字电路的优点
      • 1.2.1 传统设计方法——电路原理图输入法
      • 1.2.2 Verilog HDL设计方法与传统设计方法相比较的优势
      • 1.2.3 Verilog HDL的标准化与软核的重用
      • 1.2.4 软核、固核和硬核的概念以及它们的重用
  • 二、采用硬件描述语言(Verilog HDL)的设计流程
    • 2.1 自顶向下(Top-Down)设计的基本概念
    • 2.2 具体模块的设计编译与仿真的过程

前言

  • 在数字逻辑设计领域,迫切需要一种共同的工业标准来统一对数字逻辑电路及系统的描述,这样就能把系统设计工作分解为逻辑设计(前端)和电路实现(后端)两个互相独立而又相关的部分。由于逻辑设计的相对独立性就可以把专家们设计的各种常用数字逻辑电路和系统部件(如FFT算法、DCT算法部件)建成宏单元(Megcell)或软核(Soft-Core)库供设计者引用,以减少重复劳动,提高工作效率。电路的实现则可借助于综合工具和布局布线工具(与具体工艺技术有关)来自动地完成。
  • 硬件描述语言(HDL)是一种用形式化方法(学术专业术语)来描述数字电路和设计数字逻辑系统的语言。它可以使数字逻辑电路设计者利用这种语言来描述自己的设计思想,然后利用电子设计自动化(简称为EDA)工具进行仿真,再自动综合到门级电路,再用ASIC或FPGA实现其功能。这种设计方法也被称为高层次设计(High-Level-Design)的方法。

一、Verilog HDL语言简介

1.1 Verilog HDL语言是什么

  • Verilog HDL是硬件描述语言的一种,用于数字电子系统设计。设计人员可以用它实现各种级别的逻辑设计,并且可以用它进行系统级(System)、算法级(Alogrithem)、寄存器传输级(RTL)、逻辑级(Logic)、门级(Gate)、电路开关级(Switch)设计。
  • 硬件描述语言(HDL)是一种用形式化方法(学术专业术语)来描述数字电路和设计数字逻辑系统的语言。它可以使数字逻辑电路设计者利用这种语言来描述自己的设计思想,然后利用电子设计自动化(简称为EDA)工具进行仿真,再自动综合到门级电路,再用ASIC或FPGA实现其功能。这种设计方法也被称为高层次设计(High-Level-Design)的方法。

1.2 Verilog HDL设计复杂数字电路的优点

1.2.1 传统设计方法——电路原理图输入法

  • 几十年前,当时所做的复杂数字逻辑电路及系统的设计规模比较小也比较简单,其中所用到的FPGA或ASIC设计工作往往只能采用厂家提供的专用电路图输入工具来进行。为了满足设计性能指标,工程师往往需要花好几天或更长的时间进行艰苦的手工布线。工程师还得非常熟悉所选器件的内部结构和外部引线特点,才能达到设计要求。这种低水平的设计方法大大延长了设计周期。
  • 近年来,FPGA和ASIC的设计在规模和复杂度方面不断取得进展,而对逻辑电路及系统的设计的时间要求却越来越短。这些因素促使设计人员采用高水准的设计工具,如:硬件描述语言(Verilog HDL或VHDL)来进行设计。

1.2.2 Verilog HDL设计方法与传统设计方法相比较的优势

  • 采用电路原理图输入法进行设计,具有设计的周期长,需要专门的设计工具,需手工布线等缺陷。而采用Verilog HDL输入法时,由于Verilog HDL的标准化,可以很容易地把完成的设计移植到不同的厂家的不同的芯片中去,并在不同规模应用时可以较容易地作修改。这不仅是因为用Verilog HDL所完成的设计,它的信号位数是很容易改变的,可以很容易地对它进行修改,来适应不同规模的应用,在仿真验证时,仿真测试矢量还可以用同一种描述语言来完成,而且还因为采用Verilog HDL综合器生成的数字逻辑是一种标准的电子设计互换格式(EDIF)文件,独立于所采用的实现工艺。有关工艺参数的描述可以通过 Verilog HDL提供的属性包括进去,然后利用不同厂家的布局布线工具,在不同工艺的芯片上实现。
  • 采用Verilog HDL输入法最大的优点是其与工艺无关性。这使得工程师在功能设计、逻辑验证阶段,可以不必过多考虑门级及工艺实现的具体细节,只需要利用系统设计时对芯片的要求,施加不同的约束条件,即可设计出实际电路。实际上这是利用了计算机的巨大能力在EDA工具的帮助下,把逻辑验证与具体工艺库匹配、布线及时延计算分成不同的阶段来实现从而减轻了人们的繁琐劳动。

1.2.3 Verilog HDL的标准化与软核的重用

  • 由于Verilog HDL设计方法的与工艺无关性,因而大大提高了Verilog HDL模型的可重用性。而这正是由于Verilog HDL的标准化大大加快了Verilog HDL的推广和发展。下面介绍一个非常重要的概念软核:
  • 将功能经过验证的、可综合的、实现后电路结构总门数在5000门以上的Verilog HDL模型称之为“软核”(Soft Core)。
  • 而把由软核构成的器件称为虚拟器件,在新电路的研制过程中,软核和虚拟器件可以很容易地借助EDA综合工具与其它外部逻辑结合为一体。这样,软核和虚拟器件的重用性就可大大缩短设计周期,加快了复杂电路的设计。

1.2.4 软核、固核和硬核的概念以及它们的重用

  • 软核相对应的是固核Firm Core)与硬核Hard Core)的概念:
  • (1)“固核”:在某一种现场可编程门阵列(FPGA)器件上实现的,经验证是正确的总门数在5000门以上电路结构编码文件;
  • (2)“硬核”:把在某一种专用半导体集成电路工艺的(ASIC)器件上实现的经验证是正确的总门数在5000门以上的电路结构掩膜。
  • 综上,相比较于固核与硬核,在具体实现手段和工艺技术尚未确定的逻辑设计阶段,软核具有最大的灵活性,它可以很容易地借助EDA综合工具与其它外部逻辑结合为一体。近年来电路实现工艺技术的发展是相当迅速的,为了逻辑电路设计成果的积累,和更快更好地设计更大规模的电路,发展软核的设计和推广软核的重用技术是非常有必要的。

二、采用硬件描述语言(Verilog HDL)的设计流程

2.1 自顶向下(Top-Down)设计的基本概念

  • 有序现代集成电路制造工艺技术的快速发展,一块芯片通常集成数十乃至数百万个器件,同时也使得一个工程师难以设计如此大规律的电路。因此,利用层次化、结构化的设计方法,一个完整的硬件设计任务首先由总设计师划分为若干个可操作的模块,编制出相应的模型(行为的或结构的),通过仿真加以验证后,再把这些模块分配给下一层的设计师,这就允许多个设计者同时设计一个硬件系统中的不同模块,其中每个设计者负责自己所承担的部分;而由上一层设计师对其下层设计者完成的设计用行为级上层模块对其所做的设计进行验证。自顶向下的设计思想如下图所示:
    在这里插入图片描述
  • 自顶向下的设计(即TOP_DOWN设计)是从系统级开始,把系统划分为基本单元,然后再把每个基本单元划分为下一层次的基本单元,一直这样做下去,直到可以直接用EDA元件库中的元件来实现为止。在实际项目开发中,先进行方案的总体论证、功能描述、任务和指标的分配。随着系统变得复杂和庞大,特别需要在样机问世之前,对产品的全貌有一定的预见性。目前,EDA技术的发展使得设计师有可能实现真正的自顶向下的设计。

2.2 具体模块的设计编译与仿真的过程

  • 在不同的层次做具体模块的设计所用的方法也有所不同,在高层次上往往编写一些行为级的模块通过仿真加以验证,其主要目的是系统性能的总体考虑和各模块的指标分配,并非具体电路的实现。而当设计的层次比较接近底层时行为描述往往需要用电路逻辑来实现,这时的模块不仅需要通过仿真加以验证,还需进行综合、优化、布线和后仿真。EDA工具往往不仅支持HDL描述也支持电路图输入,有效地利用这两种方法是提高设计效率的办法之一。下面的流程图简要地说明了模块的编译和测试过程:
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/254233.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

嵌入式开发Verilog教程(三)——Verilog HDL基本语法汇总(上)

嵌入式开发Verilog教程(三)——Verilog HDL基本语法汇总(上) 前言一、简单的Verilog HDL模块1.1 Verilog HDL程序简单模块1.2 Verilog HDL程序模块结构1.3 Verilog HDL程序模块端口定义1.4 Verilog HDL程序模块内容 二、Verilog H…

SANXIN-B01开发板verilog教程V3电子版

今天给大侠带来“SANXIN-B01开发板verilog教程V3-郝旭帅团队电子版”,V3版本更新了后几章节的高级设计部分,获取电子版资料,请点击左下角阅读原文,跳转叁芯智能科技官方技术论坛下载,或者登录网址www.sxznfpga.com下载。 叁芯智能科技-郝旭帅团队打造“FPGA 设计与研发”学…

Verilog 教程

第一章:Verilog 简介 1.1 Verilog 教程 1.2 Verilog 简介 1.3 Verilog 环境搭建 1.4 Verilog 设计方法第二章:语法要素 2.1 Verilog 基础语法 2.2 Verilog 数值表示 2.3 Verilog 数据类型 2.4 Verilog 表达式 2.5 Verilog 编译指令 第三章…

ol中不同区域加载不同底图

概述 写一篇水文&#xff0c;讲讲如果在openlayers中实现不同的区域加载不同的底图。 效果 实现 通过tileUrlFunction实现不同切片地址的请求。 <!DOCTYPE html> <html><head><title>XYZ</title><link rel"stylesheet" href&qu…

数电/数字电子技术期末考前突击复习(小白稳过,看这一篇就够了)

博主&#xff1a;命运之光 专栏&#xff1a;期末考试必过and不挂科and争高分&#x1f636;‍&#x1f32b;️还有其他科目的考试突击日后会陆续更新 ✨✨✨✨✨点赞&#xff0c;关注&#xff0c;收藏不迷路✨✨✨✨✨ &#x1f984;前言&#xff1a;总结了期末数电大概率可能…

windows 10下载安装mysql5.7

MySQL数据库在日常使用是非常的频繁的&#xff0c;不管是线上还是线下。下面我就分享出我安装MySQL5.7的一步一脚印的教程&#xff0c;本教程只针对windows版本。 下载 MySQL官网下载地址&#xff1a;https://downloads.mysql.com/archives/community/ 选择对应的系统和版本…

【明解STM32】中断系统理论基础知识篇之中断寄存器功能原理

目录 一、前言 二、寄存器概述 三、NVIC寄存器组 四、SCB寄存器组 五、中断屏蔽寄存器组 六、总结 一、前言 在之前的STM32的中断系统理论基础知识之基本原理及NVIC中&#xff0c;分别中断的基本原理&#xff0c;中断的管理机制和中断的处理流程进行了较为详细的论述&…

mysql.exe下载_mysql8 windows 下载安装

一. 下载 点击download 可以注册登录&#xff0c;嫌麻烦的话直接点击NO&#xff0c;thanks… 开始下载 二. 安装 下载完成后得到一个zip包 我是安装板和解压即用版都下了&#xff0c;但用的解压即用版本&#xff0c;比较方便 解压mysql-8.0.17-winx64.zip&#xff0c;得到mysql…

MySQL 64位安装教程,不需要配置my.ini文件

一、下载安装包&#xff0c;官网下载 下载网址&#xff1a;https://dev.mysql.com/downloads/mysql/ 2、MySQLWorkbench 8.0.25下载 二、进行MySql压缩包安装方式配置。 不需要配置环境变量&#xff0c;不需要配置mini文件。下载是这些&#xff0c;自己改一下文件夹名字&…

mysql下载安装(清华源)

鉴于网上大多数MySQL方法均是上官网下载&#xff0c;然而像我这样普通电脑&#xff0c;普通带宽&#xff0c;普通配置的电脑&#xff0c;上那些官网的速度确实不敢恭维&#xff0c;因此写了这篇文章&#xff0c;举个例子&#xff0c;我在家中的是最普通的10M带宽&#xff0c;上…

MySQL 5.6 (Win7 64位)下载、安装与配置图文教程

MySQL是目前十分流行的一种关系型数据库管理系统。官网推出的安装包有两种格式&#xff0c;分别是&#xff1a;ZIP格式和MSI格式。其中MSI格式的可以直接点击安装&#xff0c;按照它给出的安装提示进行安装&#xff0c;一般MySQL将会安装在C:\Program Files\MySQL\MySQL Server…

C++ queue类成员介绍

目录 &#x1f914;queue模板介绍&#xff1a; &#x1f914;queue特点&#xff1a; &#x1f914;queue内存图解&#xff1a; &#x1f914; queue的成员函数 &#x1f50d;queue构造函数&#xff1a; &#x1f50d;queue赋值函数&#xff1a; &#x1f50d;queue判断函…

video标签学习 xgplayer视频播放器分段播放mp4

文章目录 学习链接目标video标签自带视频和制作的视频区别video标签的src属性本地视频文件前端代码播放效果 服务器视频文件示例1后端代码前端代码播放效果 示例2后端代码前端代码播放效果 示例3后端配置前端代码播放效果 video对象video对象创建和获取video的属性video的方法v…

spring cloud Alibaba之Nacos Discovery--服务治理 (二)

接着上一篇文章 搭建的微服务环境, 实现nacos 注册中心实战操作案例 一. 服务治理介绍 先来思考一个问题 通过上一章的操作&#xff0c;我们已经可以实现微服务之间的调用。但是我们把服务提供者的网络地址 &#xff08;ip&#xff0c;端口&#xff09;等硬编码到了代码中&a…

PHPMySQL基础(五):模拟登录后跳转+会话存储功能实现

PHP&MySQL基础&#xff08;一&#xff09;:创建数据库并通过PHP进行连接_长风沛雨的博客-CSDN博客 PHP&MySQL基础&#xff08;二&#xff09;:通过PHP对MySQL进行增、删、改、查_长风沛雨的博客-CSDN博客 PHP&MySQL基础&#xff08;三&#xff09;:处理查询SQL返…

excel用条件格式设置隔行变色

1、选中要设置隔行变色的区域 2、点击条件格式—>新建规则—>使用公式确定要设置格式额单元格 3、输入公式 mod(row(),2) 0&#xff0c;点击格式按钮&#xff0c;选择填充的颜色&#xff0c;点击确定。如下图所示&#xff1a; 4、在新建格式规则窗口中点击确定&#x…

Web|设置隔行变色的单元格

问题 表格在日常生活中使用的非常的多,比如excel就是专门用来创建表格的工具,表格就是用来表示一些格式化的数据的,比如:课程表、银行对账单。在网页中也可以来创建出不同的表格。在HTML中,使用table标签来创建一个表格,在table标签中使用tr来表示表格中的一行,有几行就…

Excel小技巧,隔行变色,多行变色

Excel小技巧&#xff0c;隔行变色&#xff0c;多行变色&#xff0c;间隔色&#xff0c;关键在于公式&#xff1a; mod(row(),x)y 其中x指期望的每隔&#xff08;x-1&#xff09;行变色&#xff0c;y等于每隔的第(y1)行&#xff1b; 比如&#xff1a;mod(row(),2)0 用来设置每…

[蓝桥杯/java/算法]A——隔行变色

&#x1f9d1;‍&#x1f393;个人介绍&#xff1a;大二软件生&#xff0c;现学JAVA、Linux、MySQL、算法 &#x1f4bb;博客主页&#xff1a;渡过晚枫渡过晚枫 &#x1f453;系列专栏&#xff1a;[编程神域 C语言]&#xff0c;[java/初学者]&#xff0c;[蓝桥杯] &#x1f4d6…

前端 | 设置隔行变色的单元格

欢迎点击「算法与编程之美」↑关注我们&#xff01; 本文首发于微信公众号&#xff1a;"算法与编程之美"&#xff0c;欢迎关注&#xff0c;及时了解更多此系列文章。 问题描述 表格在日常生活中使用的非常的多&#xff0c;比如excel就是专门用来创建表格的工具&#…