基于VLSI的代码变换器的设计分析
2024-08-06
来源:步旅网
2010年5月 中央民族大学学报(自然科学版) May,2010 第l9卷第2期 Journal of MUC(Natural Sciences Edition) Vo1.19 NO.2 基于VLSI的代码变换器的设计分析 高宁宁 (中央民族大学信息工程学院,北京100081) 摘 要: 通过对二进制码转换为8421 BCD码的代码变换器的设计与分析,以及对分析出的代码产生器进行 的一系列实验验证,获得基于大规模集成电路的变换器的设计解决方案. 关键词:代码变换器;代码产生器;逻辑阵列 中图分类号:N33 文献标识码:A 文章编号:1005—8036(2010)02-0043-06 1 前 言 信息在数字系统中以代码表示.在众多代码中,二进制码(又称机器码)和8421BCD码(又称十进 制码)因计算机与人类社会的密切关系,显得十分重要.两套码制的转换经常发生. 代码变换器是指将一种代码转换为另一种代码的电路.计算机处理完数据后,经常要将结果展示 给用户,需要将机器码转换为人们习惯的十进制码.表1为部分二进制码与8421BDC码的对照表 表1 部分二进制码与8421BCD码对照表 Tab.1 Contrast Table on Pan of Binary Code and 8421 BCD Code 从表1中可见:序号在0~9时,两套码制的0-1串表示完全一样,序号10时,十进制8421 BCD码有 进位:1 0000,十六进制的二进制码为:1010.由于进制不同,使得从序号10以后,两套码制的0-1串表 收稿日期:2009—11—29 作者简介:高宁宁(1959一),女(汉族),黑龙江哈尔滨人,中央民族大学信息工程学院讲师.研究方向:计算机应用 技术与数据库技术. 中央民族大学学报(自然科学版) 第l9卷 示完全不同.除了个位具有相同的0~1变换以外,两套码制似乎没有共同规律可循.这对代码变换器 的设计与实现不利. 首先是位数扩展规律性不强,对四位变换器扩展后论证其合理性较为困难,其次,如果直接设计,较 有实际意义的是8位、16位、32位、64位等等,位数较多即是一个多变量的系统,由此引出一个庞大的 真值表,书写困难,容易出错. 多变量系统的设计通常是采用存储器件或可编程器件….图1为用ROM点阵图实现的输入为五 位二进制码输出为六位8421BCD码的代码变换器,可以将表1的0~31序号所对应的二进制代码变换 为8421BCD代码. ^ l 【3 ^ f5 【7 I9 M ll M l3 M l5 M l7 M l9 M 1l M 23 M 5 M 17 M 29 M 31 M O f2 1,4 ~ 6 ^ l8 MIO M I2 M 14 M l6 M l8 ~ 20 M 22 M 24 16 M 28 M ;0 A4 J J 卜 A3 与 卜 逻 A2 l ,一 辑 阵 卜L 列 A1 L 一 £ AO ]厂 或 逻 辑 阵 列 图1 ROM阵列实现的变换器 Fig.I Convertor Implemented O13 ROM Array / 2 变换器的分析设计 以存储器件为例,多变量系统的设计问题可以转化为字线Mi(i=0,1,2,…)和位线Yj(j=0,1, 2,…)的确定,即字线由二进制代码产生器确定(图2),位线由8421 BCD代码产生器确定(图3). 在图2的二进制代码产生器中用低电平清零,由手动单脉冲为163计数器提供时钟脉冲.当左片 163(低四位)计满后,通过74LS20将进位信号发给右片163(高四位)的使能端,使其工作.表2为实验 记录表,Lp(P=0,1,…,7)为输出指示灯,灯亮记为1,不亮记为0. 表2的前5列(L0~L4)相当于五位二进制代码变换器列表,表中每一行与图1中与逻辑阵列的字 线(M0~M31)相同. 图3中的8421BCD代码产生器是用高电平清零的,4518含有两个BCD加法计数器,均由手动脉冲 提供时钟源.每当第一个计数器计满时,输出进位脉冲信号1001,通过LS08传至第二个计数器的使能 端2EN,使其计数.第一个计数器的输出为个位8421BCD代码(Q3~Q0),第二个计数器的输出为十 位8421BCD代码(Q7~Q4). 表3为图3的实验记录表,输出指示灯(Qo~Q7)亮为1、不亮为0;4518芯片中低四位输出端 (1Q3~1QO)与个位数码管(D~A)相连,高四位输出端(2Q3~2Q0)则与十位数码管(D~A)相互 连接.表3中的前六列(Q5~Q0)相当于六位8421BCD代码变换器列表,与图1中或逻辑阵列的位线 (Y5~Y0)相对应. 第2期 高宁宁:基于VLSI的代码变换器的设计分析 45 0●2 3 4 5 6 7 8 9 m¨ O l O l O 1 O l 0 l 0 l O 0 O l l 0 O 1 1 O O 1 l O 0 O O O l 1 l 1 0 O O O O O O 0 O O l l 图2二进制代码产生器 图3 8421BCD代码产生器 Fig.2 Binary Code Generator Fig.3 842 1 BCD Code Generator O O O O O 0 0 O O O 表2二进制代码产生器实验记录 Tab.2 Experimental Records of Binary Code Generator O 0 0 O O O O O O O O O O O 0 O O 0 O O O O O O 0 O O 0 O O O l O O 0 0 0 l l l O 0 O O O OO 046 中央民族大学学报(自然科学版) 第19卷 单脉冲序号 No. Q0 Q1 Q2 Q3 输出部分 Q4 Q5 Q6 Q7 个位 十位 第2期 高宁宁:基于VLSI的代码变换器的设计分析 47 图4 同源脉冲下的两套代码产生电路 Fig.4 Two Code Generating Circuits Driven by the Same Pulse Source 表4 两套代码产生电路实验记录 Tab.4 Experimental Records of Two Code Generating Circuits 48 中央民族大学学报(自然科学版) 第l9卷 图4是五位二进制代码产生器与六位8421BCD代码产生器(因显示灯有限,仅有数码显示输出)在 同源手动单脉冲的作用下的、两套代码产生电路图. 表4是二进制码和8421BCD码产生电路的实验记录. 统一清零后,两套代码均对同源时钟进行了正确的计数描述,如表4所示.用存储器实现代码转换 器的位线烧结信号由8421BCD代码产生器的串行输出端口产生. 3 结束语 实际的代码变换器是一个多变量系统,应由大规模集成电路设计实现.如前所述,变换器的输入部 分为二进制码,输出部分为8421BCD码,它们的变换没有明显的规律可循,不利于基于四位代码变换器 的扩展应用,也不利于8位、16位等多位代码变换器的直接设计. 由于代码变换电路的特殊性:即输入为待变码,输出为应变码;在VLSI上实现为:与阵列的输人为 待变码,或阵列的输出为应变码;问题就由代码变换电路的设计转为代码产生器的设计;又因为与阵列 为地址码的最小项,可以作为二进制代码产生器,故将二进制代码转换为8421BCD码的代码变换器的 设计,最终归结为基于VLSI的8421BCD代码产生器的设计. 参考文献: [1]徐龙,邓磊,彭小明,等.AVS熵编码器的VLSI设计[J].计算机研究与发展,2009,46(5):881~888 [2] 阎石.数字电子技术基础(第五版)[M].北京:高等教育出版社,2006. [3] 姜学庸,赵九捷,赵一群.数字电子技术[M].天津:天津大学出版社,1994. Design and Analysis on Code Convertors Based on VLSI GAO Ning—Ning , (Information Engineering College,Central University加r Nationalities,Beijing 100081,Chitni) Abstract:Through designing and analyzing a code conveyor which can exchange a binary code into a 8421 BCD code,as well as a series experiments on generators,a designed solution based on VLSI is gained. Key words:code convertor;code generator;logic array [责任编辑:关紫烽]