明德扬论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信扫一扫,快捷登录!

查看: 9785|回复: 1

【FPGA至简设计原理与应用】第一篇第三章硬件描述语言Verilog第6节时序逻辑always语句

    [复制链接]
发表于 2020-9-7 19:05:28 | 显示全部楼层 |阅读模式

马上注册,看完整文章,学更多FPGA知识。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
大家好,近期我们会连载《FPGA至简设计原理与应用》一书,有兴趣的同学可以学习,也希望大家可以对我们的书提出宝贵的意见和建议。


FPGA至简设计原理与应用》书籍连载索引目录

http://www.fpgabbs.cn/forum.php?mod=viewthread&tid=989


读过的朋友可积极在贴后留言,书籍正式出版时,我们会从留言者中挑选20位幸运读者,幸运读者可获潘老师亲笔签名书籍一本。

注:手机浏览可能格式会乱,建议用电脑端进行浏览。




第6节 功能描述-时序逻辑

本文档编号:001100000062
1. 本节主要介绍,时序逻辑的代码,一般有两种:同步复位时序逻辑和异步复位时序逻辑(本教学统一采用异步时钟逻辑);D型触发器的介绍,包括:D触发器的结构、波形、代码以及如何看FPGA波形;时钟的介绍,时钟的意义,时钟频率和时钟周期的换算;时序逻辑代码和硬件的关系,即评估verilog代码好坏的最基本标准,不是看代码行数而是看硬件;阻塞赋值和非阻塞赋值,前者位顺序赋值,后者位同时赋值。
2. ALTERA和VIVADO文档

6.1 always语句
时序逻辑的代码一般有两种:同步复位的时序逻辑和异步复位的时序逻辑。在同步复位的时序逻辑中复位不是立即有效,而在时钟上升沿时复位才有效。

其代码结构如下:
always@(posedge clk) begin
if(rst_n==1’b0)
代码语句;
else begin
代码语句;
end
end
在异步复位的时序逻辑中复位立即有效,与时钟无关。

其代码结构如下:
always@(posedge clk or negedge rst_n) begin
if(rst_n==1’b0)
代码语句;
else begin
代码语句;
end
end
针对时序逻辑的verilog设计,笔者提出以下建议:

为了教学的方便,笔者的代码统一采用异步时钟逻辑,建议同学们都采用此结构,这样设计时只需考虑是用时序逻辑还是组合逻辑结构来进行代码编写即可。在实际工作中请遵从公司的相应规范进行代码设计。
在笔者提供的GVim软件中打开代码后,输入“Zuhe”命令后回车可得到组合逻辑的代码结构,输入“Shixu”命令后回车可得到时序逻辑的代码结构。
没有复位信号的时序逻辑代码设计是不规范的,建议不要这样使用。

相关视频:
https://www.bilibili.com/video/BV1yf4y1R7gH?p=22

0

主题

6

帖子

39

积分

新手上路

Rank: 1

积分
39
发表于 2021-3-18 17:14:49 | 显示全部楼层
不错的,非常好
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|MDYBBS ( 粤ICP备16061416号 )

GMT+8, 2024-11-22 18:48 , Processed in 0.065212 second(s), 30 queries .

Powered by Discuz! X3.4

本论坛由广州健飞通信有限公司所有

© 2001-2019 Comsenz Inc.

快速回复 返回顶部 返回列表