完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
可综合的语法子集3 本文节选自特权同学的图书《FPGA设计实战演练(逻辑篇)》 配套例程下载链接:http://pan.baidu.com/s/1pJ5bCtt (1) 多语句定义:begin…end。(特权同学,版权所有) 通俗的说,它就是C语言里的“{ }”,用于单个语法的多个语句定义。其使用示例如下: // 含有命名的begin语句 begin : <块名> // 可选申明部分 // 具体逻辑 end // 基本的begin语句 begin // 可选申明部分 // 具体逻辑 end (2) 比较判断:if…else, case…default…endcase。(特权同学,版权所有) 判断语法if…else及case语句是最常用的功能语法,其基本的使用示例如下: // if判断语句 if(<判断条件>) begin // 具体逻辑 end // if…else判断语句 if(<判断条件>) begin // 具体逻辑1 end else begin // 具体逻辑2 end // if…else if…else判断语句 if(<判断条件1>) begin // 具体逻辑1 end else if(<判断条件2>) begin // 具体逻辑2 end else begin // 具体逻辑3 end // case语句 case(<判断变量>) <取值1>: <具体逻辑1> <取值2>: <具体逻辑2> <取值3>: <具体逻辑3> default: <具体逻辑4> endcase (3) 循环语句:for。(特权同学,版权所有) 用的也比较少,但也会在一些特定的设计中使用它。其示例如下: // for语句 for(<变量名> = <初值>; <判断表达式>; <变量名> = <新值>) begin // 具体逻辑 end (4) 任务定义:task…endtask。(特权同学,版权所有) Task更像是C语言中的子函数,task中可以有input、output和inout端口作为出入口参数,它可以用于实现一个时序控制。task没有返回值,因此不可以用在表达式中。其基本用法如下: task // 可选申明部分,如本地变量申明 begin // 具体逻辑 end endtask (5) 连续赋值:assign,问号表达式(?:)。(特权同学,版权所有) Assign用于直接互联不同的信号或直接给wire变量赋值。其基本用法如下: assign “?:”表达式就是简单的if…else语句,但更多的用在组合逻辑中。其基本用法如下: (判断条件) ? (判断条件为真时的逻辑处理) : (判断条件为假时的逻辑处理) (6) always模块:(敏感表可以为电平、沿信号posedge/negedge;通常和@连用)。(特权同学,版权所有) always有多种用法,在组合逻辑中,其用法如下: always@(*) begin // 具体逻辑 end always后若有沿信号(上升沿posedge,下降沿negedge)申明,则多为时序逻辑,其基本用法如下: // 单个沿触发的时序逻辑 always@(<沿变化>) begin //具体逻辑 End // 多个沿触发的时序逻辑 always@(<沿变化1> or <沿变化2>) begin //具体逻辑 End (7) 运算操作符:各种逻辑操作符、移位操作符、算术操作符大多是可综合的。(特权同学,版权所有) Verilog中绝大多数运算操作符都是可综合的,其列表如下: + // 加 - // 减 ! // 逻辑非 ~ // 取反 & // 与 ~& // 与非 | // 或 ~| // 或非 ^ // 异或 ^~ // 同或 ~^ // 同或 * // 乘,是否可综合看综合工具 / // 除,是否可综合看综合工具 % // 取模 << // 逻辑左移 >> // 逻辑右移 < // 小于 <= // 小等于 > // 大于 >= // 大等于 == // 逻辑相等 != // 逻辑不等于 && // 逻辑与 || // 逻辑或 (8) 赋值符号:= 和 <=。(特权同学,版权所有) 阻塞和非阻塞赋值,在具体设计中是很有讲究的,我们会在具体实例中掌握他们的不同用法。(特权同学,版权所有) 可综合的语法是verilog可用语法里很小的一个子集,硬件设计的精髓就是力求用最简单的语句描述最复杂的硬件,这也正是硬件描述语言的本质。对于做RTL级设计来说,掌握好上面这些基本语法是很重要。(特权同学,版权所有) |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
874个成员聚集在这个小组
加入小组4390 浏览 0 评论
特权同学 Verilog边码边学 Lesson01 Vivado下载与安装
2531 浏览 1 评论
玩转Zynq连载50——[ex69] FIR滤波器IP仿真实例
4179 浏览 2 评论
玩转Zynq连载49——[ex68] MT9V034摄像头的图像FFT滤波处理
5147 浏览 1 评论
玩转Zynq连载48——[ex67] Vivado FFT和IFFT IP核应用实例
5049 浏览 0 评论
1849浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-1 15:03 , Processed in 0.928773 second(s), Total 64, Slave 47 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191