verilog 基础知识
- mealy型状态机的下一状态和输出取决于当前状态和当前输入;
- moore型状态机的下一状态和输出取决于当前状态和当前输入,但其输出仅取决于现在的状态;
- 基本门原语的输出端口必须写在端口列表的前面,基本门原语的例化名可选(可以没有名字);
- n输入原语:
- 标识符大小写敏感,由大小写字母、数字、下画线( _ )和$组成;·变量第一个字符只能是字母或下画线;
- 格式指示符对大小写不敏感(b, o, d, h);
- 除标识符以外,描述文本可以随意使用空格;
- 原语中不能有任何例化或嵌套;
- verilog矢量表示为vector[highest:lowest],表达式可以选取部分区间,若选择区间在原区间以外则返回未知量x;
- 常用的电路功能验证方法有:逻辑仿真(通过把激励波形加到电路中,监视仿真波形确定电路逻辑)与形式验证(通过复杂的数学论证来证明电路功能,用于大规模复杂电路);
- 所有线网类型在仿真开始阶段都赋值为z,除了trireg为x(与开关电平模型有关);
- 寄存器类型reg变量开始赋值为x;
- ?在UDP中代表输入可以是0、1或者x;
- 时序UDP的输出必须声明为reg;
- verilog中的变量只有线网型和寄存器型两种,常用的为线网类型的wire和寄存器类型的reg和integer;
- wire和reg默认为1位变量;
- verilog中integer大小自动取主机所支持的计算机字长,至少32位;
- assign定义了连续赋值;
- 过程语句中,操作符<=被称为过程赋值运算符;
- 在单向或周期性行为中由过程赋值操作符赋值的变量必须是一个已定义的寄存器型变量;
- 寄存器变量在仿真期间暂存信息,但这不一定代表已综合电路中会包括硬件寄存器;
- Verilog语言允许在事件控制表达式中由电平敏感和边沿敏感的变量混用的情况,但是综合工具不支持这样的行为模型;
- 同步机的数据流模型也被称为RTL模型;
- 普通过程赋值操作(=), 语句按照顺序依次执行,并在任一语句执行后,下一语句执行前即时进行值的存储;
- 非阻塞赋值队列中的语句是并发执行的,而不取决于他们的相对次序;左边式是统一赋值的;
- 阻塞赋值(阻塞过程赋值语句)是依次执行的,前一句赋值完以后才执行下一句(包括左式的计算与右式的赋值);
- 信号x,z的默认宽度是机器的字节宽度,通常是32位;
- 连续赋值语句注意要点:repeat语句中表达式中值为x或者z,结果视为0;移位操作符>>&<<可以使用<<n对数据按指定位置移位n位,并且用0填补减少方向的位数;
- 赋值目标只能是线网类型(wire);
- 在连续赋值中,只要赋值语句右边表达式任一变量发生变化,表达式立即被计算,计算的结果立即赋值给左边信号(若没有定义延时量);
- 连续赋值语句不能出现在过程块中(initial和always);
- 多个连续赋值语句之间是并行语句,因此与位置顺序无关;
- 连续赋值语句中的延时具有硬件电路中惯性延时的特征,任何小于其延时的信号变化脉冲都将被滤除掉,不会提现在输出端口上;
- 函数function必须至少有一个输入自变量,但是不可能声明任何的output和inout端口(自变量);
- reg [word_size-1:0] 储存器名[num-1:0] 代表定义了一个有num个word_size位的储存器,看夏宇闻变量memory型 pp34;
- if_else 条件语句:
- 条件语句必须在过程块(initial or always)中使用,除了在这两种块语句引导的begin_end块中可以编写条件语句外,模块中的其他部分都不能编写
- if语句分为:if、if_else、 if_else if_else三种;
- if_else & if_else if_else中每个else前面的语句需要以“;”结尾, 整个语句结束后要用“;”结尾;
- if后的表达为一般为逻辑表达式 | 关系表达式, 其中0, z, x按 “False” 处理, 1按“True”处理;
- if & else后的语句如果为一个以上语句需要用begin_end包裹成复合块语句;
- if语句允许嵌套(可综合?)
- if与else具有配对关系,else总与上面最近的if配对,如果if与else的数目不是一一对应,用begin_end包裹,否则可能会改变逻辑行为;
- case语句可以嵌套;
- always语句块中,如果在给定的条件下变量没有赋值,你们这个变量将保持原值,也就是会生成一个锁存器;(如缺少default等)
- parameter 参数名1 = 表达式, 参数名2 = 表达式, ...... , 参数名n = 表达式; (连续地对多个参数进行赋值时,中间用逗号,最后用分号)
verilog 基础知识的更多相关文章
- Verilog基础知识0(`define、parameter、localparam三者的区别及举例)
1.概述 `define:作用 -> 常用于定义常量可以跨模块.跨文件; 范围 -> 整个工程; parameter: 作用 -> 常用于模块间参数传递; 范围 -> ...
- 如何学习FPGA?FPGA学习必备的基础知识
如何学习FPGA?FPGA学习必备的基础知识 时间:2013-08-12 来源:eepw 作者: 关键字:FPGA 基础知识 FPGA已成为现今的技术热点之一,无论学生还是工程师都希望 ...
- 学习 FPGA之前的基础知识
在学习一门技术之前往往应该从它的编程语言入手,比如学习单片机时,往往从汇编或者C语言入门.所以不少开始接触FPGA的开发人员,往往是从VHDL或者Verilog开始入手学习的.但小编认为,若能先结合& ...
- ZYNQ笔记(0):C语言基础知识复习
ZYNQ的SDK是用C语言进行开发的,C语言可以说是当今理工类大学生的必备技能.我本科学C语言时就是对付考试而已,导致现在学ZYNQ是一脸懵逼.现在特开一帖,整理一下C语言的基础知识. 一.定义 1. ...
- 【第一季】CH04_FPGA设计Verilog基础(一)Enter a post title
[第一季]CH04_FPGA设计Verilog基础(一) 4.1 Verilog HDL 代码规范 u 项目构架设计 项目的构架用于团队的沟通,以及项目设计的全局把控 u 接口时序设计规范 模块和模块 ...
- FPGA基础知识关键点摘要
FPGA基础知识关键点摘要 一.组合逻辑和时序逻辑的区别:组合逻辑与输入直接实时相关,时序逻辑还必须在时钟上升沿出发后输出新值,有没有时钟输入是他们最大的区别!组合时序容易出现竞争冒险现象出现亚稳态, ...
- 数字电路基础知识——组合逻辑电路(数据选择器MUX、多路复用器)
转自:https://blog.csdn.net/vivid117/article/details/100747939 数字电路基础知识--组合逻辑电路(数据选择器MUX.也即多路复用器)本次介绍数据 ...
- .NET面试题系列[1] - .NET框架基础知识(1)
很明显,CLS是CTS的一个子集,而且是最小的子集. - 张子阳 .NET框架基础知识(1) 参考资料: http://www.tracefact.net/CLR-and-Framework/DotN ...
- RabbitMQ基础知识
RabbitMQ基础知识 一.背景 RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然 ...
随机推荐
- 4. java基础之修饰符
其他修饰符 public 可以修饰属性.方法.构造方法.类 protected 可以修饰属性.方法.构造方法 default 可以修饰属性.方法.构造方法.类 private 可以修饰属性.方法.构造 ...
- 剑指offer笔记面试题5----替换空格
题目:请实现一个函数,把字符串中的每个空格替换成"20%".例如,输入"We are happy."则输出"We%20are%20happy.&quo ...
- library: Vulnhub Walkthrough
网络主机探测: 端口主机扫描: ╰─ nmap -p1-65535 -sV -A -O -sT 10.10.202.136 21/tcp open ftp vsftpd 3.0.380/tcp ope ...
- 【漏洞预警】Redis 4.x/5.x 远程命令执行高危漏洞
2019年7月09日,阿里云应急响应中心监测到有安全研究人员披露Redis 4.x/5.x 远程命令执行高危漏洞利用代码工具.针对未授权或弱口令的Redis服务,攻击者通过构造特定请求,成功利用漏洞可 ...
- alluxio 信息索引
最近要使用到 alluxio,发现网上还是有一些文档很是不错,现在通过这篇文章进行索引一下,进行备忘: https://edgedef.com/2017/08/17/alluxio-%E5%B0%8F ...
- maven与gradle的阿里云仓库配置
直接参考 https://help.aliyun.com/document_detail/102512.html 就好. 阿里云maven仓库官网 https://maven.aliyun.com/m ...
- 浅谈python中selenium库调动webdriver驱动浏览器的实现原理
最近学web自动化时用到selenium库,感觉很神奇,遂琢磨了一下,写了点心得. 当我们输入以下三行代码并执行时,会发现新打开了一个浏览器窗口并访问了百度首页,然而这是怎么做到的呢? from se ...
- CCPC 2019 秦皇岛 Angle Beats
题目 给出P个点,然后给出Q个询问,问从P中选出两个点和给的点能组成直角三角形的方法个数.-O2,时间限制5秒. \[2\leqslant P\leqslant 2000,\qquad 1\leqsl ...
- 51和32共用keil5方法
链接:https://blog.csdn.net/qq_41639829/article/details/81813992 看这位道友写的方法挺好的,可以实现共用,不过有点小问题是,安装 以后,用32 ...
- CF1062F Upgrading Cities
题意 由于这是个\(DAG\),我们考虑拓朴排序,求某个点能到的和能到它的点,这是两个问题,我们可以正反两边拓朴排序,这样就只用考虑它能到的点了 设\(f[x]\)表示\(x\)能到的点数\(+\)能 ...