小型数字系统综合设计

编程入门 行业动态 更新时间:2024-10-09 00:45:26

小型<a href=https://www.elefans.com/category/jswz/34/1771323.html style=数字系统综合设计"/>

小型数字系统综合设计

数字系统的设计流程

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 反向运动码表测试视频

更多推荐

小型数字系统综合设计

本文发布于:2024-02-27 19:18:23,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1766036.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数字   系统

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!