数字系统设计(上)
LED显示要求
●●●●●●●● ●●●●●●●○ ●●●●●●○○ ●●●●●○○○ ●●●●○○○○ ●●●○○○○○ ●●○○○○○○ ●○○○○○○○ ○○○○○○○○
always @(w, state)
begin
case(state)
// Define state circle
A: if(w)
next_state=B;
else
next_state=A;
B: if(w)
next_state=C;
else
next_state=A;
C: if(w)
next_state=C;
else
next_state=A;
default:next_state=A;
endcase
z=(state==C);
//Define output
end
// Define the sequential block
always @(posedge clk or negedge rst)
begin
if (!rst) state<=A;
数字系统设计部分讲座说明
• 主要讲座内容
– 常用数字系统设计范例 – 常用数字系统设计技巧 – 数字系统设计注意事项
• 讲座与数字电路课程教学的差异
– 课时安排 – 内容覆盖面 – 能力侧重点
数字系统设计部分讲座说明(续 )
• 课后习题要求
– 两次课后都有习题布置 – 作业电子档递交:jssjjs@ – 文件命名要求:姓名+学号+作业名
编码器/译码器设计案例
8-3编码器 (Verilog HDL设计)
3-8译码器 (电路图设计)
41MUX设计案例
41MUX (电路图设计)
41MUX (VHDL设计)
时序逻辑电路单元设计范例
• 计数器 • 移位寄存器 • 有限状态机
计数器设计案例
可正向、倒向计数器
– 异步清零 – 同步置数
计数器设计案例
具体时序仿真结果
时钟三分频设计案例
时钟三分频设计案例
具体时序仿真结果
有限状态机(FSM)设计基础
• FSM分米勒型(Mealy)和摩尔型(Moore)两种 ,前者的输出取决于机器状态和输入,后 者的输出与输入无关。
• FSM的设计方法有两类:一种是将状态的转 移和状态的操作写在同一个模块中,另一 个是将状态转移单独写成一个模块。后者 利于综合器优化代码、布局布线。
else state<=next_state;
end
endmodule
Moore型FSM波形图
Mealy型FSM
module mealy (clk, rst, w, z);
input
clk, rst, w;
output z;
rtate;
parameter A=1'b0, B=1'b1;
数字电路设计(上)
汤勇明 东南大学电子科学与工程学院
2009年4月
主要内容
• 数字系统设计部分讲座概述 • 常用数字系统单元设计范例
– 常用组合逻辑单元 – 常用时序逻辑单元 – 常用综合逻辑设计示范
• 数字系统设计技巧举例(上)
– Quartus II使用流程 – 宏函数使用 – 三态门使用
• 课后习题
always @(w,state) begin
case(state) A: if(w) begin z=0; next_state=B; end
else begin z=0; next_state=A; end B: if(w) begin z=1; next_state=B; end
else begin z=0; next_state=A; end endcase end
endmodule
Mealy型FSM波形图
流水灯设计案例需求分析/设 计方案
• 流水灯需求分析
– 通过8个单色LED实现 流水灯显示效果
• 流水灯设计方案
– 用CASE语句实现 – 用移位寄存器实现 – 用有限状态机实现
状态
Idle state0 state1 state2 state3 state4 state5 state6 state7
– 最小化设计方法 – 标准化设计方法(8选1数据选择器)
数字电路课程内容回顾(续)
• 典型组合逻辑单元案例
– 编码/译码器 – 数据选择器 – 查找表/ROM
• 典型时序逻辑单元案例
– 计数器 – 移位寄存器
• 数字系统设计要点
– 编码/状态的优化选择 – 中小规模的逻辑电路单元拆分
基于HDL和PLD器件的逻辑设计
• 时序逻辑设计流程
逻辑问题分析
真值表
最 小
逻辑函数表达式
标 准
化
化
设
设
计
选定器件类型
计
路
路
线
线
卡诺图化简
函数式变换
逻辑电路图
逻辑电路图
逻辑功能 状态图 状态转换真值表 逻辑方程组 逻辑电路图
传统数字系统设计案例
• 设计题:设计一个电路,其输入范围为二 进制数字0~15,当此数为素数时电路输出 为1。
• 其它
– PLD设计开发平台使用自学为主 – HDL语言(不限种类)自学为主
数字电路课程内容回顾
• 数制和码制 • 组合逻辑电路
– 组合逻辑电路的分析 – 组合逻辑电路的设计
• 时序逻辑电路
– 时序逻辑电路的分析 – 时序逻辑电路的设计
培训关注点 培训关注点
数字电路课程内容回顾(续)
• 组合逻辑设计流程
Moore型FSM
A为初始状态;w为输入;z为输出
module input output reg reg[2:1]
simple (clk, rst, w, z); clk, rst, w; z; z; state, next_state;
parameter[2:1] A=2'b00,B=2'b01, C=2'b10;
• 名词解释
– HDL:Hardware Description Language – PLD:Programmable Logic Device
• 技术优势
– 兼容原逻辑电路设计方法 – 增加电路行为描述设计方法 – 器件数量减少、设计效率提升、系统可靠性提
升
组合逻辑电路单元设计范例
• 编码器/译码器 • 多路数据选择器
//Define the sequential block always @(posedge clk or negedge rst) begin
if (!rst) state<=A; else state<=next_state; end
//Define the next state and output combination circuits