【数字逻辑 | 组合电路基础】Verilog语法

简介: 【数字逻辑 | 组合电路基础】Verilog语法

👉引言💎


学习的最大理由是想摆脱平庸,早一天就多一份人生的精彩;迟一天就多一天平庸的困扰。 热爱写作,愿意让自己成为更好的人............

铭记于心
🎉✨🎉我唯一知道的,便是我一无所知🎉✨🎉


一、FPGA的一般设计流程


1.电路设计

根据需求指定电路设计方案

  • 比如设计一个时序电路,需要明确系统功能,决定采用同步还是异步,数据通路和控制电路如何设计,需要几个触发器,电路状态如何转换...
  • 通常,电路设计细化到寄存器传输级(RTL)即可,无需精确到门级

2.代码编写

  • HDL电路描述语言,可层次化,通用性强

3.功能仿真

4.综合实现

  • 完成HDL代码(较高层次电路描述)到真实芯片电路的转换过程,类似于编译器将高级语言转换为目标机器的二进制代码的过程。
  • 综合阶段:
  • 网表生成:检查代码语法,给出错误报告。将代码编译为由基本逻辑单元连接而成的逻辑网表。
  • 门级优化:将用户的设计自动转换成一个等价或更优电路;
  • 工艺映射:决定网表中的每一个元件如何在FPGA的可用资源中实现
  • 实现阶段:将综合出的网表映射为FPGA芯片内部固有的硬件逻辑模块上(称为布局),然后基于布局的拓扑,利用内部的连线资源,将逻辑模块连接起来(称为布线)。
  • 时序分析:计算所有模块和走线延迟,产生一系列表格以量化电路性能。并用来确定生成电路是否满足时序要求。若无异常,将生成一个bitstream比特流文件,该文件即为最终电路。

5.上板调试

  • 将综合实现生成的比特流文件下载到FPGA芯片中,运行电路,观察其工作是否正常,若有问题,要调试定位出错的原因


二、Verilog基本语法


  • 基本语法
  • 门电路

image.png

  • assign
  • always
    各个always块并行执行,always块可以产生各种逻辑,电平触发的always块常用来描述组合逻辑行为;沿触发的always块常用于时序逻辑的功能描述。通过综合工具自动将其转换为相应的逻辑结构

image.png

  • 位置关联法
  • 名称关联法

image.pngimage.png


三、注意事项及设计流程


  • 实验板使用注意事项
  • 插拔USB数据线前,最好电源开关处于off状态。
  • Micro USB避免插反,应该是带勾的平头朝上,如果发现很难插拔,需要检查是否插反。(损坏概率最高)
  • 尽量避免湿手、带静电的手接触电路板及外设接口部分。
  • 用外设的时候注意电平,应该是3.3V兼容5V输入,避免高电压接入。
  • 注意安装Vivado和工程目录不要出现中文,也不要使得工程所在目录太深。
  • 电脑的用户名不要设置为中文,会出现各种诡异的问题。
  • 主要设计流程以及注意事项
  • 设计流程
  • .V输入(add Sources)->综合(Run synthesis)->添加约束文件->添加仿真文件->功能仿真->运行实现过程(Run implementation)->生成bit流(Generate Bitstream)->Auto connect target ->Program Divice
  • 区分仿真和综合:功能仿真不是必须,但却非常必要;一定要学会通过看仿真时序来验证电路功能的正确性。 习惯查看综合后的设计,如RTL Schematic,熟悉“什么样的代码会综合成什么样的电路”,有助于编程技能提升。
  • 生成bit流后,再接入电路板
  • 关于Testbench代码(测试文件代码):
    结构
module testbench;// 通常testbench没有输入与输出端口
    信号或变量定义声明;
    使用initial或always语句来产生激励波形;
    例化设计模块;
    监控和比较输出响应;
endmodule

🌹写在最后💖: 路漫漫其修远兮,吾将上下而求索!伙伴们,再见!🌹🌹🌹


相关文章
|
3月前
|
Java uml
1、使用简单工厂模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程
该博客文章展示了如何使用简单工厂模式设计一个程序,该程序能够根据用户输入的运算符(加、减、乘、除)对两个数进行计算,并提供了相应的UML类图和Java源码实现。
1、使用简单工厂模式设计能够实现包含加法(+)、减法(-)、乘法(*)、除法(/)四种运算的计算机程序,要求输入两个数和运算符,得到运算结果。要求使用相关的工具绘制UML类图并严格按照类图的设计编写程
|
5月前
|
存储
数字逻辑与模拟电子技术-部分知识点(4)——数电部分-组合电路的一般分析和设计方法、三人和四人表决器的设计、SR触发器、D触发器、JK触发器
数字逻辑与模拟电子技术-部分知识点(4)——数电部分-组合电路的一般分析和设计方法、三人和四人表决器的设计、SR触发器、D触发器、JK触发器
86 0
|
12月前
|
异构计算
【数字电路】Y图 | 逻辑操作符 | 布尔函数 | Combinational systems
【数字电路】Y图 | 逻辑操作符 | 布尔函数 | Combinational systems
59 0
|
芯片 异构计算
第三章 硬件描述语言verilog(三)功能描述-时序逻辑
第三章 硬件描述语言verilog(三)功能描述-时序逻辑
255 0
第三章 硬件描述语言verilog(三)功能描述-时序逻辑
|
存储 传感器 物联网
【数字逻辑 | 组合电路基础】电路基础知识
【数字逻辑 | 组合电路基础】电路基础知识
【数字逻辑 | 组合电路基础】电路基础知识
Verilog语法入门(二)多bit逻辑门
Verilog HDL是一种硬件描述语言(HDL:Hardware Description Language),以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。 Verilog HDL和VHDL是世界上最流行的两种硬件描述语言,都是在20世纪80年代中期开发出来的。前者由Gateway Design Automation公司(该公司于1989年被Cadence公司收购)开发。两种HDL均为IEEE标准。
203 0
|
算法
Verilog语法入门(一)简单组合逻辑电路
Verilog HDL是一种硬件描述语言(HDL:Hardware Description Language),以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。 Verilog HDL和VHDL是世界上最流行的两种硬件描述语言,都是在20世纪80年代中期开发出来的。前者由Gateway Design Automation公司(该公司于1989年被Cadence公司收购)开发。两种HDL均为IEEE标准。
177 0
Verilog语法入门(九)异步复位电路
Verilog HDL是一种硬件描述语言(HDL:Hardware Description Language),以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。 Verilog HDL和VHDL是世界上最流行的两种硬件描述语言,都是在20世纪80年代中期开发出来的。前者由Gateway Design Automation公司(该公司于1989年被Cadence公司收购)开发。两种HDL均为IEEE标准。
171 0
|
Java
一款设计和模拟数字逻辑电路的LogiSim工具
Logisim是一种用于设计和模拟数字逻辑电路的教育工具。凭借其简单的工具栏界面和构建它们时的电路仿真,它非常简单,有助于学习与逻辑电路相关的最基本概念。由于能够从较小的子电路构建更大的电路,并通过鼠标拖动来绘制电线束。
361 0
FPGA-Verilog的书写规范格式
FPGA-Verilog的书写规范格式
162 0