Verilog学习笔记设计和验证篇(四)...............状态机的置位与复位
1)状态机的异步置位和复位
异步置位与复位是于时钟无关的。当异步置位或复位信号来临时,他们立即分别置触发器的输出为1或0,不需要等待时钟沿的到来。要将他们列入always块的事件控制信号内就能触发always的执行。
沿关键词包括posedge(信号上升沿)和negedge(下降沿触发)的时钟,信号可以按照任意顺序列出。
1)异步高电平有效置位: @(posedge clk or posedge set)
2)异步低电平有效复位: @(posedge clk or negedge set)
2)异步。高电平置位 低电平有效复位: @(posedge clk or posedge set or negedge set)
带异步高电平有效的置位/复位的D触发器示例:
module dff(data,set,reset,q,clk,qb);
input data;
input set,reset,clk;
output q,qb;
reg q,qb;
always @(posedge clk or posedge reset or posedge set )
begin
if(reset) begin q<=;qb<=; end
else if(set) begin q<=;qb<=;end
else begin q<=data; qb<=~data;end
end
endmodule
2)状态机的同步置位和复位
同步置位与复位时钟只有在时钟的有效跳变沿时刻置位或复位,信号才能使触发器置位或者复位。因此不能把set和reset信号名列入always块中,因为他们的变化不能触发always快执行。
1)同步正跳变沿触发: @(posedge clk )
2)同步负跳变沿触发: @(negedge clk)
具有同步高电平有效的置位/复位的D触发器:
module dff(data,set,reset,q,clk,qb);
input data;
input set,reset,clk;
output q,qb;
reg q,qb;
always @(posedge clk )
begin
if(reset) begin q<=;qb<=; end
else if(set) begin q<=;qb<=;end
else begin q<=data; qb<=~data;end
end
endmodule
可见同步D触发器和异步D触发器的区别仅仅差别在always块的敏感列表是否包含置位信号。
Verilog学习笔记设计和验证篇(四)...............状态机的置位与复位的更多相关文章
- Verilog学习笔记设计和验证篇(二)...............同步有限状态机
上图表示的就是数字电路设计中常用的时钟同步状态机的结构.其中共有四个部分产生下一状态的组合逻辑F.状态寄存器组.输出组合逻辑G.流水线输出寄存器组.如果状态寄存器组由n个寄存器组成,就可以记忆2^n个 ...
- Verilog学习笔记设计和验证篇(三)...............同步有限状态机的指导原则
因为大多数的FPGA内部的触发器数目相当多,又加上独热码状态机(one hot code machine)的译码逻辑最为简单,所以在FPGA实现状态机时,往往采用独热码状态机(即每个状态只有一个寄存器 ...
- Verilog学习笔记设计和验证篇(五)...............层次化事件队列
详细的了解层次化事件队列有助于理解Verilog的阻塞赋值和非阻塞赋值功能.所谓层次化事件队列指的是用于调度仿真时间的不同Verilog事件队列.在IEEE的5.3节中定义了层次化事件队列在逻辑上分为 ...
- Verilog学习笔记设计和验证篇(一)...............总线和流水线
总线 总线是运算部件之间数据流通的公共通道.在硬线逻辑构成的运算电路中只要电路的规模允许可以比较自由的确定总线的位宽,从而大大的提高数据流通的速度.各个运算部件和数据寄存器组可以通过带有控制端的三态门 ...
- Verilog学习笔记简单功能实现(四)...............译码器和编码器
这里以简单的3-8译码器和8-3编码器为例: module decoder3_8(a,out); :]a; :]out; 'b1<<a;/*把最低位的1左移in位(根据in口输入的值)并赋 ...
- BZOJ 1061: [Noi2008]志愿者招募 [单纯形法]【学习笔记看另一篇吧】
1061: [Noi2008]志愿者招募 Time Limit: 20 Sec Memory Limit: 162 MBSubmit: 3975 Solved: 2421[Submit][Stat ...
- Shiro:学习笔记(1)——身份验证
Shiro——学习笔记(1) 1.核心概念 1.Shiro不会自己去维护用户.维护权限:这些需要我们自己去设计/提供:然后通过相应的接口注入给Shiro.2.应用代码直接交互的对象是Subject,也 ...
- 学习笔记-CCS-MSP430F5529[快速入门篇二]
由于2021的全国电赛延期了,从今天开始打算好好整理一下使用CCS编程的经验,本篇笔记会好好整理一下我备赛期间用CCS写的程序,包括外部中断,定时器部分的定时中断,定时器输入捕获,PWM波输出,UAR ...
- Deep Learning(深度学习)学习笔记整理系列之(四)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
随机推荐
- web 安全
一.客户端脚本安全 (1)跨站脚本攻击(XSS): XSS攻击,通常指黑客通过“html注入” 篡改了网页,插入了恶意的脚本,从而在用户浏览网页的时候,控制用户浏览器的一种攻击. 最常见的XSS攻击就 ...
- jquery 插件开发
一.$.extend() 这种方式用来定义一些辅助方法是比较方便的 $.extend({ sayHello:function(name){ console.log('Hello:'+name); } ...
- Java面试(2)-- Java算数表达式
class Demo02{ public static void main(String[] args){ //算数运算符 +,-,*,/,%,++,-- //例1 int a = 1; int b ...
- 对于System.Net.Http的学习(三)——使用 HttpClient 检索与获取过程数据
对于System.Net.Http的学习(一)——System.Net.Http 简介 对于System.Net.Http的学习(二)——使用 HttpClient 进行连接 如何使用 HttpCli ...
- Python无聊的总结
在公司无聊的时候看了前辈写的python代码,突然发现一个比较好玩的python表达式: lambda x,y:x+y 咋一看,这个应该类似方法之类的,上网查了查,所以特此总结下 lambda:上代码 ...
- CSS实现点击事件及实践
实现原理利用:target,把a标签自身的href以及id设置成一样的. 案例1:实现元素的切换 HTML: <div id="box"> <a href=&qu ...
- 【转】C#中如何实现左截取和右截取字符串
使用C#语法编写程序时,我们需要截取一个字符串左边或右边的若干个字符,该如何操作呢?在VB中可以使用left或right函数实现,C#中没有提供这样的函数呢?答案是没有.但是,C#中提供Substri ...
- 深入理解CSS变形transform(2d)
× 目录 [1]变形原点 [2]变形函数 [3]多值 前面的话 CSS变形transform是一些效果的集合,主要是移动.旋转.缩放和倾斜这四种基本操作,还可以通过设置matrix矩阵来实现更复杂的效 ...
- IP,路由,交换基础培训记录
IP 掩码 子网划分 vlan划分(有助于减少广播压力) vlan之间互通通过交换机打通. 路由,静态路由,动态路由(学习到的),路由表,下一跳,网络位长的优先级高. 交换机,hub集线器. hub ...
- java类加载器-Tomcat类加载器
在上文中,已经介绍了系统类加载器以及类加载器的相关机制,还自定制类加载器的方式.接下来就以tomcat6为例看看tomat是如何使用自定制类加载器的.(本介绍是基于tomcat6.0.41,不同版本可 ...