数字系统综合设计"/>
小型数字系统综合设计
数字系统的设计流程
1、数字系统的需求分析
外部整体输入、输出分析,包括数据、控制信号与状态2、功能部件设计(分模块设计)
得到内部的控制信号、状态3、构建数据通路
从数据流动的角度,连接各功能部件4、构建控制单元
绘制系统状态图 构建状态转换电路 构建输出函数电路(生成所需要的内部、外部控制信号,产生状态输出) 构建控制单元5、系统集成联调
从控制流角度,连接控制单元(4)和各执行部件构成的数据通路(3)实验终极目标
构建小型数字系统 —— 逆向运动码表 运动码表初步功能需求分析 运动码表的外部特性 ➢ 输入: 4 个按钮; 输出: 4 个 7 段数码管 运动码表的功能 ➢ Start :计时器复位,继续 开始倒计时 ➢ Stop : 暂停计时 ,显示当前剩余时间 ➢ Store :尝试 更新系统记录的计时数据 ( 满足条件:当前计时数据 > 系统记录 ) ➢ Reset : 复位 ,使得计时器 = 99.99 , 系统记录 = 00.00 运动码表编辑界面实验任务分解
数字系统部件设计 同步时序逻辑组合逻辑
一、组合逻辑部件设计
实验任务 ➢ * 2 路选择器设计 ➢ * 16 位无符号比较器设计 ➢ 码表数码管显示驱动设计(一):2路选择器(16位)设计*
外观
2 路选择器( 16位)的外部特性 ➢ 输入: 16 位的输入 X , Y ; 选择控制信号 Sel ➢ 输出: 16 位输出 Out ➢ 功能: out = ( Sel==0 ) ? X:Y 当 Sel 为 0 ,选择 X 作为输出;否则,选择 Y 输出 设计思路: 先构建 1 位 2 路选择器,再并发为 16 位1. 构建2路选择器(1位)
➢ 输入: 1 位输入 X , Y ;选择控制信号 Sel ➢ 功能: out = ( Sel==0 ) ? X:Y ➢ 输出:1位Out 电路连接 手动绘制 利用真值表或逻辑表达 式自动生成电路 Out=Sel X1 + X0 ~Sel2、复制产生16个2路选择器(1位),连接形成1个2路选择器(16位)*
电路连接(只能手动连接)
要先用分线器将X和Y分成四位
测试结果(PASS)
(二):16位无符号比较器
无符号比较器的外部特性 ➢ 输入: 16 位的输入 X , Y ; ➢ 输出:大于( 1 位),等于( 1 位),小于( 1 位) ➢ 功能:无符号比较两个输入,输出结果。 外观 设计思路: 先构建 4 位的无符号比较器,进而再扩展为 16 位 *1. 构造4位无符号比较器
➢ 输入: 4 位的输入 X , Y ; ➢ 功能:无符号比较(当 X>Y 时, Great = 1 ) ➢ 输出:大于( 1 位),等于( 1 位),小于( 1 位)外观
简易真值表
连接电路
手动绘制
利用真值表或逻辑表达 式自动生成电路
Great=X0 ~Y3 ~Y2 ~Y1 ~Y0 + X1 ~Y3 ~Y2 ~Y1 + X1 X0 ~Y3 ~Y2 ~Y0 + X2 ~Y3 ~Y2 + X2 X0 ~Y3 ~Y1 ~Y0 + X2 X1 ~Y3 ~Y1 + X2 X1 X0 ~Y3 ~Y0 + X3 ~Y3 + X3 X0 ~Y2 ~Y1 ~Y0 + X3 X1 ~Y2 ~Y1 + X3 X1 X0 ~Y2 ~Y0 + X3 X2 ~Y2 + X3 X2 X0 ~Y1 ~Y0 + X3 X2 X1 ~Y1 + X3 X2 X1 X0 ~Y0
Equal=~X3 ~X2 ~X1 ~X0 ~Y3 ~Y2 ~Y1 ~Y0 + ~X3 ~X2 ~X1 X0 ~Y3 ~Y2 ~Y1 Y0 + ~X3 ~X2 X1 ~X0 ~Y3 ~Y2 Y1 ~Y0 + ~X3 ~X2 X1 X0 ~Y3 ~Y2 Y1 Y0 + ~X3 X2 ~X1 ~X0 ~Y3 Y2 ~Y1 ~Y0 + ~X3 X2 ~X1 X0 ~Y3 Y2 ~Y1 Y0 + ~X3 X2 X1 ~X0 ~Y3 Y2 Y1 ~Y0 + ~X3 X2 X1 X0 ~Y3 Y2 Y1 Y0 + X3 ~X2 ~X1 ~X0 Y3 ~Y2 ~Y1 ~Y0 + X3 ~X2 ~X1 X0 Y3 ~Y2 ~Y1 Y0 + X3 ~X2 X1 ~X0 Y3 ~Y2 Y1 ~Y0 + X3 ~X2 X1 X0 Y3 ~Y2 Y1 Y0 + X3 X2 ~X1 ~X0 Y3 Y2 ~Y1 ~Y0 + X3 X2 ~X1 X0 Y3 Y2 ~Y1 Y0 + X3 X2 X1 ~X0 Y3 Y2 Y1 ~Y0 + X3 X2 X1 X0 Y3 Y2 Y1 Y0
Less=~X3 ~X2 ~X1 ~X0 Y0 + ~X3 ~X2 ~X1 Y1 + ~X3 ~X2 ~X0 Y1 Y0 + ~X3 ~X2 Y2 + ~X3 ~X1 ~X0 Y2 Y0 + ~X3 ~X1 Y2 Y1 + ~X3 ~X0 Y2 Y1 Y0 + ~X3 Y3 + ~X2 ~X1 ~X0 Y3 Y0 + ~X2 ~X1 Y3 Y1 + ~X2 ~X0 Y3 Y1 Y0 + ~X2 Y3 Y2 + ~X1 ~X0 Y3 Y2 Y0 + ~X1 Y3 Y2 Y1 + ~X0 Y3 Y2 Y1 Y0
2、复制产生4个4位的比较器,再级连接形成1个16位的比较器
( 1 ) X 、 Y 中每 4 位对应 1 个 4 位比较器 ➢ 用已有隧道标签进行连接 ( 2 )分析 4 个 4 位比较器的输出 与 最终 输出 的 逻辑关系, 生成级联电路 电路连接(只能手动绘制)自动测试结果
(三):码表数码管的驱动
➢ 输入: 16 位的 BCD 码 ( 4 位的 10 进制数); ➢ 输出: 4 个 7 段数码管的控制信号(共 32 位 ) 码表显示驱动的外部特性 设计思路: ➢ 利用新手实验已经构建的 1 个 7 段数码管驱动 , 并发形 成 4 个 7 段数码管的驱动 电路连接(手动绘制) 码表数码管驱动的测试 1 、 自行新建 一个“码表显示驱 动测试”文件 2 、在文件中 建立 起如右图所示 的 测试电路 。 ➢ 添加码表显示驱动、常量、 7 段数 码管、分线器等组件 ➢ 定义输入、输出的标签隧道 ➢ 完成连接 新建电路文件要调节显示的数字时,如下图所示点击常量符号,在左下角对常量的属性进行修改
二、同步时序逻辑电路概述
一般设计流程 ➢ 构建状态图 ➢ 构建状态转换逻辑 ➢ 构建输出函数的逻辑 ➢ 实现电路 实验任务 ➢ * 16 位寄存器( 16 位并行加载寄存器) ➢ 4 位反向时间计数器( 4 位 BCD 计数器) ➢ 码表计数器(一):16位并行加载寄存器
16 位并行加载寄存器的外部特性 ➢ 输入: 16 位的输入 Din , 使能信号 En ; ➢ 输出: 16 位输出 Q ➢ 功能: Din → Q 设计思路: 先构建 4 位寄存器,再并发为 16 位寄存器1. 构建 4位并行加载寄存器*
➢ 输入: Din ( 4 位); 使能信号 En ➢ 功能: Din → Q ➢ 输出: Q ( 4 位) 电路连接2、复制产生4个4位寄存器,再并联接形成1个16位并行加载寄存器
电路连接
(二):4位BCD反向计数器
4位BCD反向计数器的外部特性
➢ 输入:时钟信号 CLK , 使能信号 En ,异步复位 Rst ; ➢ 输出: 4 位输出 Q ,进位输出信号 Cout ➢ 功能:利用真值表或逻辑表达 式自动生成电路
BCD计数器状态转换
N3=~S3 ~S2 ~S1 ~S0 + S3 S0 + S3 S1 + S3 S2
N2=S2 S0 + S2 S1 + S3 ~S2 ~S1 ~S0
N1=S1 S0 + S2 ~S1 ~S0 + S3 ~S1 ~S0
N0=~S0
BCD计数器输出函数
Cout=~S3 ~S2 ~S1 ~S0
4位BCD计数器(手动绘制)
(三):码表计数器( 16 位输出) 码表 反向 计数器的外部特性 ➢ 输入:时钟信号 CLK , 使能信号 En ,异步复位 Rst ; ➢ 输出: 16 位输出 Q ➢ 结构: 包含 4 个 BCD 码反向计数器 ➢ 功能: 低位计数器从 0 到 9 时,相邻高位计数器 减 1 设计思路: 利用 4 个的 4 位 BCD 计数器级联而成 电路连接(手动绘制) 码表计数器自动测试三、运动码表控制单元构建(重点!!)
外部的控制输入信号 ➢ Start 、 Stop 、 Store 、 Reset 定义控制单元的输出信号 ➢ SD-SEL 、 SD-EN 、 TM-EN 、 TM-Rest 、 DP-SEL 内部的状态反馈信号 ➢ NewRecord“码表控制状态转换”的设计
运动码表状态定义
状态转移图电路连接
表达式
N2=~start ~reset S2 + S2 S1 ~S0 + ~start store ~S2 ~S1 + ~start store ~S2 ~S0
N1=~store ~S2 S1 ~S0 + ~reset ~S2 S1 S0 + ~start store ~S2 ~S1 + ~start store NewRecord ~S2 ~S0 + start ~store ~S2 ~S1 + start ~reset S2
N0= ~store ~reset ~S2 ~S1 + ~store ~S2 ~S1 ~S0 + ~stop ~reset ~S2 S1 S0 + start ~store ~S2 ~S1 + start ~store ~S2 ~S0 + start ~reset S2
“码表控制输出函数”的设计
SDSel为0时,选择的是常量9999,为1时,选择的是当前计时器的值
DPSel为0时,选择的是当前计时器的值,为1时,选择的是16位寄存器里存的值
SDEN为1时,更新寄存器的值
TMSel(TMED)为1时,打开计时器开始倒计时
TMReset为1时,清空计时器的值
真值表
电路连接
表达式
SDSel=S2 ~S0
SDEN=~S2 ~S1 ~S0 + S2 S1 ~S0
DPSEL=~S1 ~S0 + S2 ~S0
TMEN=~S2 S1 S0
TMReset=~S2 ~S1 S0
码表控制器
电路连接
运动码表系统集成与联调
连接控制单元与数据通路 ➢ 对照 功能部件分析表 、 部件 输入来源 表,完成 控制单元 与 数据通路 各个部件的引脚 连接 ➢ 可适当添加与调整基本部件、 门电路、线路等 电路连接测试结果
Logisim 反向运动码表测试视频
更多推荐
小型数字系统综合设计
发布评论