组合设计示例:1比特计数器与井字棋电路设计
1. 1比特计数器设计
1.1 需求背景
在一些重要算法中,需要统计数据字中“1”比特的数量。部分微处理器指令集已将此操作作为基本指令。理想情况下,该操作应与其他算术运算(如加法)具有相同的速度,因此需要设计一个组合电路来实现。
1.2 32位1比特计数器设计方案
假设要构建一个32位的1比特计数器,由于输入输出数量较多,无法将设计放入单个22V10类PLD中,因此考虑将设计划分为多个PLD。具体划分如下:
- 使用两个22V10(ONESCNT1)分别统计32位输入字D[31:0]中两个15位块的“1”的数量,每个产生一个4位的和输出。
- 使用另一个22V10(ONESCNT2)将两个4位和与最后两个输入位相加。
1.3 ONESCNT1程序
ONESCNT1的程序看似简单,但在编译时遇到了问题。以下是ONESCNT1的ABEL程序:
module onescnt1
title 'Count the ones in a 15-bit word'
ONESCNT1 device 'P22V10';
" Input and output pins
D14..D0 pin 1..11, 13..15, 23;
SUM3..SUM0 pin 17..20 istype 'com';
equations
@CARRY 1;
[SUM3..SUM0] = D0 + D1 + D2 + D3 + D4 + D5 +
超级会员免费看
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



