前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >verilog常用语法一让您的FPGA设计更轻松

verilog常用语法一让您的FPGA设计更轻松

作者头像
FPGA开源工作室
发布2019-10-29 10:32:11
8790
发布2019-10-29 10:32:11
举报
文章被收录于专栏:FPGA开源工作室

verilog常用语法一让您的FPGA设计更轻松

作者:lee神

1 参数化

FPGA 设计的硬件语言Verilog中的参数化有两种关键词:define 和 paramerter,参数化的主要目的是代码易维护、易移植和可读性好。

Parameter关键词类似于C语言中的形参可在其他模块调用时实例化参数,这个参数在运行过程中不能修改,在编译时就已经确定好了。

示例:

模块引用如下:

方式一:

方式二:

第一种方式必须按照顺序,而第二种方式可以顺序颠倒。所以在参数化比较多的情况下,尽量采用第二种方式,以避免顺序的错乱。

Define关键词类似于C语言中的define 。主要用于本地模块的一些定义,例如状态机。

示例:

2 条件编译

一般情况下,Verilog HDL源程序中所有的行都将参加编译。但是有时希望对其中的一部分内容只有在满足条件才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”。有时,希望当满足条件时对一组语句进行编译,而当条件不满足是则编译另一部分。

条件编译命令有以下几种形式: 1) `ifdef 宏名 (标识符) 程序段1 `else 程序段2 `endif

2) `ifdef 宏名 (标识符) 程序段1 `endif

示例:

如上所示我们在写I2S的时候会遇到不同位宽的I2s数据,这就意味着对于不同的数据模块我们就要写一个文件。如果采用条件编译就可以只写一个文件。当需要修改时只需要修改`define D_WIDTH16

//`define D_WIDTH20

//`define D_WIDTH24

就可以完成不同i2s数据位宽的修改。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-03-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FPGA开源工作室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档