Verilog_学习路线(小白)

#前言:

自从专心学习专业课后,发现知识点得用,越用越熟练,工具也一样,高级工具的学习可帮助我们在工作中极大地提高效率,但这里要记住一点,任何工具都是为解决实际问题出现的,即落脚点为解决实际问题

#Verilog起源:

verilog最初就是因为电路设计需要进行仿真规避因设计错误造成的成本浪费(毕竟电子器件在当时成本昂贵),而仿真需要在计算机进行(实验条件),因此需要配套的程序语言作为内部仿真器的语言,用于逻辑建模和仿真验证。至此,开启了属于Verilog的时代。

发展历史

  • 1983 年,Verilog 最初由 Gateway Design Automation 公司(GDA)的 Phil Moorby 创建,作为内部仿真器的语言,主要用于逻辑建模和仿真验证,被广泛使用。
  • 1989 年,GDA 公司被 Cadence 公司收购,Verilog 语言成为 Cadence 公司的私有财产。
  • 1990 年,Cadence 公司成立 OVI(Open Verilog International)组织,公开 Verilog 语言,促进 Verilog 向公众领域发展。
  • 1992 年,OVI 决定致力于将 Verilog OVI 标准推广为 IEEE(The Institute of Electrical and Electronics Engineers)标准。
  • 1995 年,OVI 的努力获得成功,IEEE 制定了 Verilog HDL 的第一个国际标准,即 IEEE Std 1364-1995,也称之为 Verilog 1.0。
  • 2001 年,IEEE 发布 Verilog 第二个标准(Verilog 2.0),即 IEEE Std 1364-2001, 简称为 Verilog-2001 标准。由于 Cadence 在集成电路设计领域的影响力及 Verilog 语言的简洁易用性,Verilog 成为电路设计中最流行的硬件描述语言。

主要特性

下面是 Verilog 的主要特性:

  • 可采用 3 种不同的方式进行设计建模:①行为级描述——使用过程化结构建模②数据流描述——使用连续赋值语句建模③结构化方式——使用门和模块例化语句描述。
  • 两类数据类型:线网(wire)数据类型与寄存器(reg)数据类型,线网表示物理元件之间的连线,寄存器表示抽象的数据存储元件。
  • 能够描述层次设计,可使用模块实例化描述任何层次。
  • 用户定义原语(UDP)创建十分灵活。原语既可以是组合逻辑,也可以是时序逻辑。
  • 可提供显示语言结构指定设计中的指定端口到端口的时延,以及路径时延和时序检查。
  • Verilog 支持其他编程语言接口(PLI)进行进一步扩展。PLI 允许外部函数访问 Verilog 模块内部信息,为仿真提供了更加丰富的测试方法。
  • 同一语言可用于生成模拟激励和指定测试的约束条件。
  • 设计逻辑功能时,设计者可不用关心不影响逻辑功能的因素,例如工艺、温度等。
  • ……

主要应用

专用集成电路(ASIC),就是具有专门用途和特殊功能的独立集成电路器件。

Verilog 作为硬件描述语言,主要用来生成专用集成电路。

主要通过 3 个途径来完成:

1、可编程逻辑器件

FPGA 和 CPLD 是实现这一途径的主流器件。他们直接面向用户,具有极大的灵活性和通用性,实现快捷,测试方便,开发效率高而成本较低。

2、半定制或全定制 ASIC

通俗来讲,就是利用 Verilog 来设计具有某种特殊功能的专用芯片。根据基本单元工艺的差异,又可分为门阵列 ASIC,标准单元 ASIC,全定制 ASIC。

3、混合 ASIC

主要指既具有面向用户的 FPGA 可编程逻辑功能和逻辑资源,同时也含有可方便调用和配置的硬件标准单元模块,如CPU,RAM,锁相环,乘法器等。

DIY学习路线:

任何一门工具的学习包括Verilog,都是为了解决问题,所以你需要有应用思维。

如果你是在实际产品设计或课设过程中需要用到FPGA那没问题,我相信你能理解学习这门语言的用途,如果你只是单纯的发现有Verilog的存在,从来没接触过这方面比较好奇,我建议你先去了解硬件产品设计相关流程再定位他的用途。

以上只是个人观点,你不一定要采纳,说不定你的学习方法比我更优秀。

学习verilog的路线不仅要focus Verilog语言本身,更重要的是放眼于整个电子产品设计本身。产品的出现是为了解决问题,而人们每天都会有大大小小的问题。

#感悟

人生就是这样,生活就是这样,每个人都是问题的制造者,每个人也是问题的解决者,不断地发现问题,解决问题,优化,循环(PDCA)。而在Verilog学习过程中,他就是帮我解决电路设计的仿真问题,帮我一定程度上简化工作流程。那我学习他,就是有意义的。

人生,最宝贵的就是时间。你要相信自己的时间成本很昂贵。当我还是大学一二年级的时候,很多长辈会劝我不要去做兼职,因为那很浪费时间。但我还是去做了。不是因为执拗或反着来。是因为我并不了解那句话的含义,或者说,长辈们只是告诉我结论,而并没为我讲解这其中的错综复杂会怎样影响到我的人生。

就像父母总是告诉我们要好好学习,却从不肯告诉我们方法,于是我们就像在伸手不见五指的漆黑森林寻找着那最终的出口,跨越沼泽,穿过荆棘,最终还不一定能找得到。那些时刻至今是我们不能提及的过往。

如见大三接近尾声,我才稍稍意识到了学习一门工具的重要性,总之,当我觉得做什么事情已经晚了点时候,恰恰是我开始做一件事最好的时机。之前社会实践,见识了太多的牛鬼蛇神,哈哈哈。怎么说呢,打击挺大,但人只要活着就有希望,不是嘛?希望是自己给自己的,我们终其一生不过是与自己相处,认识最真实的自己罢了。that‘s kind of insteresting!

补充声明:

最后给大家推荐一些我目前在使用的学习地址(仅供参考)并请出我们的老演员免责声明。

学习地址:

1.B站:Rong晔的个人空间-Rong晔个人主页-哔哩哔哩视频 (bilibili.com)

最适合初学者的FPGA?ZUBoard保姆级教程+学习路线分享!_哔哩哔哩_bilibili

2.HDLBits:HDLBits (01xz.net)

3.菜鸟教程:1.1 Verilog 教程 | 菜鸟教程 (runoob.com)

免责声明:

本文内容部分均有我摘抄自网络,仅供各位参考不做任何商业及其他用途。倘若文章内容侵犯任何人的权益请及时告知我本人进行删除,谢谢配合。

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

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

相关文章

武汉星起航助力新手卖家掌握亚马逊政策,开启跨境电商新征程

在数字化浪潮席卷全球的今天,亚马逊平台以其强大的影响力和广阔的市场前景,吸引了越来越多的卖家涌入其中。然而,对于初涉亚马逊市场的新手卖家而言,如何在激烈的市场竞争中立足,并成功开展跨境电商业务,却…

用python进行接口测试(详细教程)

前言 其实我觉得接口测试很简单,比一般的功能测试还简单,现在找工作好多公司都要求有接口测试经验,也有好多人问我什么是接口测试,本着不懂也要装懂的态度,我会说:所谓接口测试就是通过测试不同情况下的入…

微火全域运营是什么?为什么一上线就火了?

近日,以共享WiFi贴和智慧数字经营等项目闻名业内的品牌微火又提出了新概念——微火全域运营,并同步上线了微火全域运营平台。这一举动无疑是给全域运营赛道和有意向做微火全域运营服务商的创业者群体中投下了一枚重磅炸弹,有创业者透露&#…

ICode国际青少年编程竞赛- Python-4级训练场-绿色能量1

ICode国际青少年编程竞赛- Python-4级训练场-绿色能量1 1、 Dev.step(3) Dev.turnLeft() Dev.step(3) Spaceship.step(4) Spaceship.turnRight() Spaceship.step(4) Dev.step(3) while Item[1].y ! Dev.y:wait()2、 Dev.step(4) while Item[0].x ! Dev.x:wait() Dev.turnLe…

Unity射击游戏开发教程:(13)如何在Unity中播放音效

在本文中,我将向大家展示一些为游戏添加声音的不同方法。 我们为游戏添加声音的第一种方法是播放背景音乐。在此,我们将创建游戏对象(“音频管理器”)并创建一个子游戏对象(“背景音乐”)。该子游戏对象将是播放音乐的对象,因此需要向其添加音频源组件。如果没有音频源组…

如何获得临时谷歌邮箱?

什么是临时谷歌邮箱? 临时谷歌邮箱,也称为一次性谷歌邮箱或匿名谷歌邮箱,可以用来作为你的个人临时谷歌邮箱账户,而不需要亲自注册谷歌账户就可以使用。这些邮箱在一定时间后自动销毁,期间无需用户进行任何操作。它们…

你不知道的ConstraintLayout高级用法

文章目录 1. ConstraintLayout介绍2. 高级用法2.1 Gone Margin2.2 偏移2.3 居中2.4 尺寸约束2.5 链2.6 角度定位(圆形定位) 3. 工具类3.1 Guideline(参考线)3.2 Barrier(栅栏)3.3 Group(组&…

OpenCV-android-sdk配置及使用(NDK)

opencv官网下载Android版Releases - OpenCV 下载好OpenCV-android-sdk并解压好,然后新建一个jni文件夹测试,测试项目目录结构如下: ├── jni │ ├── Android.mk │ ├── Application.mk │ └── test.cpp Application.mk: APP_STL := c++_static APP_CPP…

JAVA毕业设计138—基于Java+Springboot+Vue的医院预约挂号小程序(源代码+数据库)

毕设所有选题: https://blog.csdn.net/2303_76227485/article/details/131104075 基于JavaSpringbootVue的医院预约挂号小程序(源代码数据库)138 一、系统介绍 本系统前后端分离带小程序和后台 小程序(用户端),后台管理系统&a…

租用香港Windows服务器要注意的几种安全防护措施

在网络世界里,永远没有绝对的安全,但我们可以通过采取适当的措施使风险降低。对于选择香港Windows服务器租赁的企业和个人来说,保护数据的安全性与隐私至关重要。下面将介绍几种关键的租用香港Windows服务器时应注意的安全防护措施。 1.使用本…

基于fastapi sqladmin开发,实现可动态配置admin

1. 功能介绍: 1. 支持动态创建表、类,属性,唯一约束、外键,索引,关系,无需写代码,快速创建业务对象; 2. 支持配置admin显示参数,支持sqladmin原生参数设置,动…

PTP 对时协议 IEEE1588 网络对时 计算原理

前言 本文将阐述 PTP 对时协议的原理,slave 节点如何根据获取的时间来纠正和更新自己的时间。 协议概述 整个通讯过程中会发送 4 种类型的数据包,用来支撑对时。下面是 4 个包的解释 Sync message: 由 master 发送,发起对时事务, slave 接…

[视频教程]赤壁OL单机版_80级英雄_可局域网

[端游] 赤壁OL单机版80级英雄,横刀立马,54级护卫,20种兵种,GM模式,无限元宝 本教程仅限学习使用,禁止商用,一切后果与本人无关,此声明具有法律效应!!&#x…

ios实现拍摄视频与显示在界面上

1、添加录音和拍摄权限 NSMicrophoneUsageDescription Privacy - Camera Usage Description 2、代码 #import "ViewController.h" #import <AVFoundation/AVFoundation.h> #import <MobileCoreServices/MobileCoreServices.h>// 接下来是你的 ViewCont…

2024年小程序视频如何下载到电脑上

随着2024年的到来&#xff0c;将小程序视频无缝下载到电脑上&#xff0c;从此让精彩内容触手可及&#xff0c;不受时间和网络的限制&#xff0c;随时随地启发你的生活和工作。 小程序视频我已经打包好了&#xff0c;有需要的自己下载 小程序视频下载工具打包链接&#xff1a;…

15. 三数之和(双指针+去重优化)

文章目录 前言一、题目描述二、代码原理1.暴力解法2.双指针优化 三.代码编写总结 前言 在本篇文章中&#xff0c;我们将会讲到leetcode中15. 三数之和&#xff0c;我们将会用到双指针的方式解决这道问题&#xff0c;同时注意掌握算法原理的去重操作。 一、题目描述 给你一个…

(41)5.6-5.8数据结构(栈和队列的应用和数组)

1.栈在括号匹配中的应用 #define _CRT_SECURE_NO_WARNINGS #define MaxSize 10 typedef struct { char data[MaxSize];//静态数组存放栈中元素 int top; //栈顶指针 }SqStack;//初始化栈 void InitStack(SqStack& S);//判断栈是否为空 bool StackEmpty(SqStack S…

Typora如何打出小黑点,空心圆

Typora如何打出小黑点&#xff0c;空心圆 小黑点 方法&#xff1a;Ctrlshift] 空心圆 在上一步的基础上先回车(Enter)、再Tab 键 先在第二行出现第二个小黑点&#xff0c;Tab后变成 空心圆 参考链接&#xff1a;https://blog.csdn.net/lalamadandan/article/details/125747…

DRF 纯净版创建使用

【一】介绍 &#xff08;1&#xff09;使用原因 在Django中&#xff0c;contrib 包包含了许多内置的app和中间件&#xff0c;如auth、sessions、admin等&#xff0c;这些app在创建新的Django项目时默认是包含在内的。然而&#xff0c;在开发RESTful API时&#xff0c;可能不需…

Jenkins android 自动打包安卓 centos8.5 运维系列五

1 新建项目android #cat android.sh #!/bin/bash rm -rf /data/.jenkins/workspace/android/app/build/outputs/apk/debug/* rm -rf /data/.jenkins/workspace/android/app/build/outputs/apk/release/* cd /data/.jenkins/workspace/android/app source /etc/profile g…