IC工程师入门必学,Verilog零基础入门教程

news2025/7/6 20:02:21

近年来,IC行业发展火热,薪资待遇高,发展前景好,所以成了很多人转行的首选。但IC行业入行门槛高,需要具备相关的知识技能。比如工程师必须至少掌握一种HDL语言。

一般在HDL语言中,Verilog相对来说更加易学、易用,已经超过了80%的行业覆盖率,并且运用也非常广泛。基本上所有流行的综合器、仿真器都支持Verilog HDL,所以Verilog也就成为了IC工程师入门必学,接下来IC修真院就来为大家来具体介绍一下Verilog。

在这里插入图片描述

首先来了解一下什么是Verilog ?

Verilog HDL(简称 Verilog )是一种硬件描述语言,用于数字电路的系统设计。可对算法级、门级、开关级等多种抽象设计层次进行建模。

Verilog 继承了 C 语言的多种操作符和结构,与另一种硬件描述语言 VHDL 相比,语法不是很严格,代码更加简洁,更容易上手。

Verilog HDL与c语言的本质区别

Verilog 虽然有很多语法和C语言类似,上手也比较容易,但想要真正掌握也并不是一件简单事,需要注意的是它的设计方法和设计思维和C语言是并不相同的。

他们的区别主要还是在于Verilog是硬件描述语言,综合实现后的结果对应的是实际的电路,是用软件在编程硬件。而c语言是在固定的硬件上(如cpu,dsp等),用软件实现各种功能。

Verilog HDL是在描述硬件,一但设备电源开启,硬件的每个单元就会一直处于运行状态,所有的电路都是并发执行的,存在并行性的特点。因此,用Verilog所描述的电路模块属于并行结构,是可以在同一时间同时运行的。

而c语言是一行接一行依次执行的,属于顺序结构。因此,不能用c的顺序思想来编写Verilog硬件描述语言,而要用硬件电路设计的思想编写Verilog。

Verilog的主要应用包括:

ASIC和FPGA工程师编写可综合的RTL代码
高抽象级系统仿真进行系统结构开发
测试工程师用于编写各种层次的测试程序
用于ASIC和FPGA单元或更高层次的模块的模型开发

在这里插入图片描述

Verilog基础知识

(1)逻辑值
逻辑0:表示低电平,对应电路GND;逻辑1:表示高电平,对应电路VCC;
逻辑X:表示未知;逻辑Z:表示高阻态,外部没有激励信号,是一个悬空状态。(和X区分,X是高低电平的一种,而Z是悬空的,可能是高低之间的一种状态)

(2)标识符(identifier)
标识符用于定义模块名、端口名、信号名等。它可以是任意一组字母、数字、$和下划线符号的组合,但是标识符的第一个字符必须是字母或者下划线,标识符是区分大小写的。

(3)数据类型
主要有三大数据类型:寄存器数据类型、线网数据类型和参数数据类型。
寄存器类型(reg):①reg类型数据的默认初始值为不定值x;②reg类型的数据只能在always语句和initial语句中被赋值;

线网数据类型:①包括wire型和tri型,常用wire型;②表示结构实体之间的物理连线;③不能存储值,它的值是由驱动它的元件(门、连续赋值语句、assign)所决定的。

参数数据类型:①参数就是一个常量,在Verilog中用parameter定义常量;②可以一次定义多个参数,参数与参数之间需要用逗号隔开;③每个参数定义的右边必须是一个常数表达式;④参数型数据常用于定义状态机的状态、数据位宽和延迟大小等。

(4)运算符
条件操作符:a ?b :c 代表如果a为真,就选择b,否则选择c;
位运算符:①~a:将a的每个位进行取反;②&:与操作;③|:或操作;④^:异或操作
移位运算符:①a<<b 代表将a左移b位(左移位宽增加);②a>>b 代表将a右移b位(右移位宽不变)

视频学习的链接推荐

推荐一个视频学习的网站:https://ic.coachip.cn/course/detail/5

在这里插入图片描述

书籍推荐

《Verilog HDL高级数字设计》
这本书非个人认为是讲Verilog方面非常清楚的一本书,相信大家在读了这本书之后code水平会有很大的提高。

《设计与验证verilog hdl》
这是一本Verilog及EDA应用书籍,现在市场上关于 Verilog 的书籍大多数是介绍语法和建模的,没有真正体现出理论性与实用性的结合。

《专用集成电路设计实用教程》
这本书综合的比较全面,系统,作者在DC方面有极其丰富的经验,全书将综合的原理和应用讲解的非常清楚。

《数字集成电路–系统与设计》&《数字集成电路分析与设计深亚微米工艺》
这本书堪称是IC行业的入门教程,内容涵盖非常广,从器件到连线到系统,设计时应该注意的方面,经典的解决方案,各个方面都有涉及。

《SOC设计方法与实现》
这本书比较基础的介绍了数字IC设计的流程和特点,可以让初学者在最快的时间内形成一个体系架构。

《Reuse Methodology Manual FOR SYSTEM-ON-A-CHIP DESIGNS》
经典数字IC设计圣经,建议多看几遍,可以让你的SoC设计从理论上有较大的提高。

想要了解更多知识内容可以关注IC修真院官网(ic.coachip.cn)!学习之路上,IC修真院与你同行。

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

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

相关文章

负载均衡架构设计技巧

负载均衡算法 轮询&随机 基本原理 轮询&#xff1a;将请求依次发给服务器 随机&#xff1a;将请求随机发给服务器 适用场景 通用&#xff0c;无状态的负载均衡 优缺点 实现简单不会判断服务器状态&#xff0c;除非服务器连接丢失 问题场景 某个服务器当前因为触发…

Java面向对象---尚硅谷Java入门视频学习

1.类和对象 1.1创建过程 对象是将内存地址赋值给了变量&#xff0c;所以变量其实引用了内存中的对象&#xff0c;所以称之为引用变量&#xff0c;而变量的类型&#xff08;即类&#xff09;称之为引用数据类型。 堆&#xff08;Heap&#xff09;&#xff0c;此内存区域的唯…

关于pytorch的数据处理-数据加载Dataset

目录 1. 数据加载 2. Dataset __init__ __getitem__ __len__ 测试一下 完整代码 3. Dataset - ImageFolder 1. 数据加载 最近在使用 Unet 做图像分割&#xff0c;设计到 处理数据有关的工作&#xff0c;查了点资料&#xff0c;做一些简单的总结 在pytorch 中&#x…

Thinkphp安装报错解决办法

跟着官方文档的步骤安装thinkphp报错该如何解决&#xff1a; 前言 ThinkPHP无需安装过程&#xff0c;但是需要把ThinkPHP框架放入WEB运行环境&#xff08;前提是你的WEB运行环境没有问题&#xff09;。 一、Thinkphp安装以及报错解决方式 Thinkphp官网&#xff1a;安装ThinkP…

Mysql为何不推荐写多表SQL

前言 在大部分情况下&#xff0c;单表并不是比多表快单表优势在于理解成本与可控性有时候你觉得单表SQL不好写的时候&#xff0c;你改更新的是表结构 现状 在我们学习MySql的路程之中&#xff0c;估计不少人告诫我们不要写长语句。 至于为什么&#xff0c;确实很少人提起。 …

2.6 用一套万能文案公式来拆解4个小红书爆文案例【玩赚小红书】

公式细分人群他们的痛点数字干货分享情感共鸣 我们一个一个来看。 ​ ​ 一、《9平次卧小房间&#xff0c;再见了传统榻榻米&#xff08;附户型图&#xff09;》 家装类&#xff1a;避坑/攻略/小价钱装出大效果/装修效果拔群 标题直接点出了目标人群的需求&#xff1a;如何…

XSS进阶之CSP绕过

目录预备知识实验目的实验环境实验步骤一实验步骤二实验步骤三预备知识 1.了解Javascript、PHP和CSP的一些特性&#xff0c;比如“strict-dynamic”。 2.CSP&#xff1a;实质就是白名单制度&#xff0c;它规定哪些外部资源可以加载和执行。它的实现和执行全部由浏览器完成。资…

python实战指西<1>pygame安装,以及vscode

目录 1&#xff0c;安装pygame 1.1&#xff0c;&#xff08;如果前一个没反应的化&#xff09; 1.2如果飘红字 1&#xff0c;检查是否开了网络代理&#xff08;不要开&#xff09; 2&#xff0c;检查是否有pip模块更新需要 2.这里顺便记录一下vscode 蛇蛇的环境搭载 2.1首…

Postgresql实验系列(4)SIMD提升线性搜索性能24.5%(附带PG SIMD完整用例)

概要 接上一篇《Postgresql引入SIMD指令集》 PG引入SIMD执行集后具体有多大性能提升&#xff1f;本篇抽取PG的simd库&#xff0c;对比线性搜索场景的性能&#xff1a; 测试场景&#xff08;文章最后提供完整程序&#xff09; 构造一个存有14亿数字的数组 uint32 cnt 14100…

【python3】3.函数、类、模块

2022.11.15 本学习内容总结于莫烦python:3.函数、类、模块 https://mofanpy.com/tutorials/python-basic/interactive-python/function1. Function 函数 我常会重复写一些功能&#xff0c;比如查询文件时间&#xff0c;查询文件名字等等.后续我只需要引用到这个功能&#xff0…

Flink架构重要概念解析-超详理解

文章目录&#x1f48e; 1.1 系统架构1.1.1 整体构成1.1.2 作业管理器&#xff08;JobManager&#xff09;1.1.3 任务管理器&#xff08;TaskManager&#xff09;&#x1f680;1.2 作业提交流程1.2.1 高层级抽象视角1.2.2 独立模式&#xff08;Standalone&#xff09;1.2.3 YARN…

网页数据采集系统-怎样利用爬虫爬网站数据

随着社会不停地发展。人们也是越来越离不开互联网&#xff0c;今天小编就给大家盘点一下免费的网页数据采集系统&#xff0c;只需要点几下鼠标就能轻松爬取数据&#xff0c;不管是导出excel还是自动发布到网站都支持。详细参考图片一、二、三、四&#xff01; 企业人员 通过爬…

【直播预告】相机模型与标定——Real world超级公开课

导言 《Realworld超级公开课》是奥比中光3D视觉开发者社区打造的品牌活动之一&#xff0c;聚焦于3D视觉传感技术。每期课程邀请奥比中光及生态合作伙伴的技术专家&#xff0c;以线上线下相结合的授课形式&#xff0c;面向高校与人工智能企业的开发者&#xff0c;分享3D视觉技术…

线程的“结束”

【一道概率很高的面试题】&#xff1a; 如何优雅的结束一个线程&#xff1f; 上传一个大文件&#xff0c;正在处理费时的计算&#xff0c;如何优雅的结束这个线程呢&#xff1f; 【stop方法】&#xff1a; 【为何不建议使用stop呢&#xff1f;】&#xff1a; 因为很容易产生…

【附源码】计算机毕业设计JAVA成绩分析系统

【附源码】计算机毕业设计JAVA成绩分析系统 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; JAVA mybati…

ORA-01940 无法删除当前已连接的用户之解决方案(脚本)

第一部分&#xff1a;配置数据库连接 1. 安装ODBC yum -y install unixODBC unixODBC-devel 2. 安装Oracle-instantclient #以下所有操作使用root账号执行 #创建目录 mkdir -p /opt/oracle cd /opt/oracle #下载odbc安装包 wget https://download.oracle.com/otn_software…

计算机毕业设计ssm+vue基本微信小程序的好物推荐分享系统

项目介绍 我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,好物分享系统小程序被用户普遍使用,为方便用户能够可以随时进行好物分享系统小程序的数据信息管理,特开发了基于好物分…

做食品能入驻Lazada吗?带你解锁东南亚当地热销及需求食品系列

中国的电商领域已经趋于饱和状态&#xff0c;中国食品电商领域已经呈现出存量的趋势了&#xff0c;例如&#xff1a;良品铺子、三只松鼠、百草味、口水娃、盼盼等国内知名品牌已经占比了国内大部分的市场份额&#xff0c;跟着巨头抢市场 无疑是很难的&#xff0c;那么中国这么多…

红外线热像仪的热成像质量介绍

摘要 毫无疑问&#xff0c;你在过去几年的某个时候&#xff0c;购买了数位相机来更换旧的胶卷相机。你的购买可能受到你的信念的影响&#xff0c;即在尝试判断提供的所有相机选择之间的图像质量时&#xff0c;像素数是最重要的规格。 任何阅读过消费者报告及其对数位相机的详…

CVE-2020-1472-ZeroLogon复现

CVE-2020-1472-ZeroLogon复现 简介 Netlogon使用的AES认证算法中的vi向量默认为0&#xff0c;导致攻击者可以绕过认证&#xff0c;同时其设置域控密码的远 程接口也使用了该函数&#xff0c;导致可以将域控中保存在AD中的管理员password设置为空 影响版本 Windows Server 2…