[FPGA学习之路]第三篇:verilog程序框架

本文介绍了学习Verilog程序框架的过程,包括注释的使用、避免与关键字冲突的技巧,以及模块的结构(接口描述、逻辑功能)和调用方法。作者强调了提高代码可读性和模块化的重要性。
摘要由CSDN通过智能技术生成

第三章:FPGA学习之路——Verilog程序框架



前言

本文主要记录本人学习正点原子的Verilog程序框架的内容,里面会添加一些个人的理解,方便自己和各位阅读者查看。


一、Verilog注释

1.注释的作用

  • 提高程序的可读性
  • 方便后期维护

2.两种注释方式

  1. // 开头的语句,它表示以 // 开始到本行结束都属于 注释语句。
    只能用于单行
    例如:
wire locked;		//PLL输出有效标志信号
  • 我的话习惯把这种注释方式用与“屏蔽”,主要是在调试和改错的时候用的比较多。
    有的人可能会说这样屏蔽比较麻烦,其实按住键盘上的“ ALT ”按键,然后鼠标放到要屏蔽的程序开头,按住左键往下滑,就可以在几行同时打相同的内容。
  1. 以“ /* ” 符号开始,一直到“ */ ”结束,在这两个符号之间的都是注释
    可用于多行
    例如
/*
我
是
6
行
注
释
*/
  • 我个人比较习惯把这种注释用于模块开头每条需要解释的语句后面,主要用于解释说明

二、Verilog关键字

1.关键字 & 定义变量的技巧

  • 工具会自动识别关键字,并且每一个都有自己的物理意义,因此我们定义变量的时候不能与下表中的关键字重合。
    在这里插入图片描述
    虽然关键字很多但是我想大家应该都发现了,他们好像都是小写,那就好办了,当我们定义一个变量的时候可以将第一个字母大写或者全部大写,这样做我认为有两点好处
  1. 可以很有效的保证不会和表中的关键字重合
  2. 可以很好的提高程序的可读性,比如用英语或者拼音来写变量的时候使用大写加_的方式

2.常用的关键字

见下表:
在这里插入图片描述


三、Verilog程序框架

1.模块的结构

  • Verilog的基本设计单元是“模块”(block)(类似:C语言的基本模块是函数)
  • 模块由两部分组成:一部分描述接口,另一部分描述逻辑功能
  • 每个Verilog程序包括4个主要的部分:端口定义IO说明内部信号声明功能定义
module block(a,b,c,d);	/*module:关键字模块的开始;block:模块名;(a,b,c,d):端口的定义*/
/*IO说明*/
	input  a,b;			/*输入信号*/
	output c,d;			/*输出信号*/
	
/*这个模块的功能定义*/
/*assign:给线网类型赋值*/
assign c = a | b;		
assign d = a & b;

endmodule				/*关键字模块的结束*/
  • 模块接口图
    在这里插入图片描述
  • 综合的门级电路结构
    可综合:对于Verilog而言,他作为一个硬件描述语言,所写的语句可以得到一个由门级结构组成的电路网表;也就是说可综合的模块最后可以生成一个物理电路的
    在这里插入图片描述

而Verilog里还有不可综合的模块,它不能对应实际的电路,它的作用是给模块做一个测试文件(仿真文件)让仿真工具来识别

注意 :

  • 对于c语言来说,函数的位置先后影响执行顺序;而对于Verilog来说位置并不影响,因为是并行的;
  • 而在模块中,begin和end中逻辑是顺序执行的

2.模块的调用

在模块调用时,信号通过模块端口在模块之间传递。


总结

以上就是今天的内容,本文记录了学习Verilog程序框架的内容,以此来方便大家查阅和学习。

  • 19
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值