• 时序逻辑电路的设计要点:

  ①只有时钟信号复位信号可以放在敏感列表里;

  ②使用非阻塞赋值,即使用"<=";

  ③无需对所有分支进行描述,对于未描述的分支,变量将保持原值;

  ④如果敏感列表中,有一个信号是边沿触发,则所有信号都得使用边沿触发。

  • 锁存器: 当时钟为高电平时,输出才会随输入数据的变化而更新。
//基本锁存器
module latch(clk, d, q);
input clk, d;
output q;
always @(clk, d) begin
if(clk)
q<=d;
end
endmodule //含复位控制的锁存器:高电平有效,低电平复位
module latch_reset(clk, rstn, d, q);
input clk, rstn;
input d;
output q;
always @(clk, rstn, d) begin
if(!rstn)
q<=0;
else if(clk)
q<=d;
end
endmodule
  • 触发器: 只有在时钟上升沿时才会更新数据
//基本D触发器
module dff(clk, d, q);
input clk;
input d;
output reg q;
always @(posedge clk)
q<=d;
endmodule //含异步复位信号的D触发器:高电平有效,低电平复位
module dff_reset(clk, rstn, d, q);
input clk, rstn;
input d;
output reg q;
always @(posedge clk, negedge rstn) begin
if(~rstn)
q<=1'b0;
else
q<=d;
end
endmodule //同步复位信号的D触发器
module dff_reset(clk, rstn, d, q);
input clk, rstn;
input d;
output reg q;
always @(posedge clk) begin
if(~rstn)
q<=1'b0;
else
q<=d;
end
endmodule //含异步复位和同步使能的D触发器:使能信号高电平有效;优先级:reset>clk>en.
module dff_reset_en(clk, rstn, en, d, q);
input clk, rstn, en;
input d;
output reg q;
always @(posedge clk, negedge rstn) begin
if(~rstn)
q<=1'b0;
else if(en)
q<=d;
end
endmodule
  • 寄存器:
//1位寄存器
module reg1(clk, reset, load, in_data, out_data);
input clk, reset, load;
input in_data;
output reg out_data;
always @(posedge clk, posedge reset) begin
if(reset)
out_data<=1'b0;
else if(load)
out_data<=in_data;
end
endmodule //N位寄存器
module regN
#(parameter N=8)
(input clk, reset, load,
input [N-1:0] in_data,
output reg [N-1:0] out_data); always @(posedge clk, posedge reset) begin
if(reset)
out_data<=0;
else if(load)
out_data<=in_data;
end
endmodule
  • 计数器:
//模M计数器:参数M指定计数模值;参数N指定计数器所需位数。
module counter_mod_m
#(parameter M=10,
parameter N=4)
(input clk, reset,
output [N-1:0] qd,
output cout); always@(posedge clk) begin
if(reset)
regN<=0;
else if(regN<(M-1))
regN<=regN+1;
else
regN<=0;
end
assign qd = regN;
assign cout=(regN==(M-1))?1'b1:1'b0;
endmodule

数电第六周周结_by_yc的更多相关文章

  1. 201871010132-张潇潇-《面向对象程序设计(java)》第六-七周学习总结

    201871010132-张潇潇-<面向对象程序设计(java)>第六-七周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh ...

  2. 2017-2018-1 我爱学Java 第六七周 作业

    团队六七周作业 完善版需求规格说明书 制定团队编码规范 数据库设计 后端架构设计 TODOList 参考资料 完善版需求规格说明书 <需求规格说明书>初稿不足之处: 1.开发工具写错 2. ...

  3. 201871010104-陈园园 《面向对象程序设计(java)》第六——七周学习总结

    201871010104-陈园园 <面向对象程序设计(java)>第六——七周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daiz ...

  4. 201871010106-丁宣元 《面向对象程序设计(java)》第六—七周学习总结

    201871010106-丁宣元 <面向对象程序设计(java)>第六—七周学习总结 正文开头 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu- ...

  5. 201871010128-杨丽霞《面向对象程序设计(java)》第六-七周学习总结

    201871010128-杨丽霞<面向对象程序设计(java)>第六-七周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...

  6. 模电&数电知识整理(不定期更新)

    模电总复习之爱课堂题目概念整理 Chapter 1 1) 设室温情况下某二极管的反偏电压绝对值为1V,则当其反偏电压值减少100mV时,反向电流的变化是基本不发生变化. 2) 二极管发生击穿后,在击穿 ...

  7. 数电课设——琐碎

    这几天没有更新过网站了,也没继续开发VellLock了,可是感觉还是没有闲着,一直在跟下面的一些元器件在打交道,当然下面的都是小儿科,英文文档都看得我快吐血了.数电基本属于棺材边上过的我,是各种头大, ...

  8. 201871010113-刘兴瑞《面向对象程序设计(java)》第六-七周学习总结

    项目 内容 这个作业属于哪个课程 <任课教师博客主页链接> https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 <作业链接地址>htt ...

  9. [问题2015S05] 复旦高等代数 II(14级)每周一题(第六教学周)

    [问题2015S05]  设 \(A\) 是 \(n\) 阶复方阵, 证明: \(A\) 可对角化的充分必要条件是 \(A\) 相似于某个如下的循环矩阵: \[C=\begin{pmatrix} a_ ...

  10. [问题2014A04] 复旦高等代数 I(14级)每周一题(第六教学周)

    [问题2014A04]  设 \(A,B,C,D\) 均为 \(n\) 阶方阵. (1) 若 \(A^2=A\), \(B^2=B\), \((A+B)^2=A+B\), 证明: \(AB=BA=0\ ...

随机推荐

  1. kafka的auto.offset.reset详解与测试

    1. 取值及定义 auto.offset.reset有以下三个可选值: latest (默认) earliest none 三者均有共同定义: 对于同一个消费者组,若已有提交的offset,则从提交的 ...

  2. Node.js(四)json

    npm init -y(初始化项目) npm install express(引入express) npx express-generator -e(自动生成模板.添加对 ejs 模板引擎的支持) n ...

  3. ES6中的数组reduce()方法详解

    reduce() 方法对数组中的每个元素执行一个由我们提供的reducer函数(升序执行),将其结果汇总为单个返回值. 1. 语法reduce说明 arr.reduce(callback(accumu ...

  4. 微信小程序js-时间转换函数使用

    最近在做云开发博客小程序 采集微信发布的信息放入数据库会有createTime因此发现了不一样的地方 云函数可以直接使用 但是放到引导全局的app.js文件却是找不到该方法-->dateform ...

  5. Windows开启关闭测试模式的方法(含开启测试模式失败的解决办法)

    前言:           内含:Windows开启关闭测试模式的方法.开启测试模式失败的解决办法.win10进入bios的方式.BitLocker恢复方式.           对于互联网从业者来说 ...

  6. JavaScript基本语法(数组与JSON)

    5.数组 #①使用new关键字创建数组 // 1.创建数组对象 var arr01 = new Array(); // 2.压入数据 arr01.push("apple"); ar ...

  7. 从0搭建vue3组件库:Shake抖动组件

    先看下效果 其实就是个抖动效果组件,实现起来也非常简单.之所以做这样一个组件是为了后面写Form表单的时候会用到它做一个规则校验,比如下面一个简单的登录页面,当点击登录会提示用户哪个信息没输入,当然这 ...

  8. JUC(8)JMM

    文章目录 1.JMM 2.volatile 3.单例模式 1.JMM Volatile是java虚拟机提供轻量级的同步机制 1.保证可见性 2.不保证原子性 3.禁止指令重排 什么是JMM java内 ...

  9. (二)Three光线检测-实现摄像机向鼠标点击位置滑动动画

    (二)Three.js光线检测 摘要:使用three.js中的光线检测 Raycaster() ,实现一下效果: 通过点击处的坐标,修改摄像机位置,实现摄像机由远及近的过渡动态效果(由远景到近景) 1 ...

  10. 题解 P2080 增进感情

    \(\sf Link\) 爆搜最香了. 感觉有点像01背包(? 对于每件事,我们可以选择干或者不干,如果干就将好感值处理一下,当所有的事都搜完之后,记录最小值\(minn\) . 最终答案就是\(mi ...