小型数字系统综合设计--反向运动码表设计

数字系统的设计流程

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 ~Sel

2、复制产生162路选择器(1位),连接形成12路选择器(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、复制产生44位的比较器,再级连接形成116位的比较器

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、复制产生44位寄存器,再并联接形成116位并行加载寄存器

 电路连接 

(二):4BCD反向计数器

4BCD反向计数器的外部特性

输入:时钟信号 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 反向运动码表测试视频

  • 6
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

def timedelete

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值