APP下载

基于FPGA的电子表决器电路的设计与实现

2015-12-18张超英

电子科技 2015年1期
关键词:电子科技电路设计逻辑

杨 东,张超英

(1.黄河科技学院嵌入式系统应用技术实验室,河南郑州 450063;2.漯河职业技术学院电气电子工程系,河南漯河 462002)

电子设计自动化(Electronic Design Automation,EDA)是以计算机为载体,在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作[1]。EDA技术的出现,大幅提高了电路设计的效率和可操作性,减轻了劳动强度。利用EDA工具,电子设计师可从概念、算法、协议等方面开始设计电子系统,大量工作可通过计算机完成,并可将电子产品从电路设计、性能分析到设计出PCB版图的整个过程都在计算机上自动处理完成[2]。基于EDA软件的FPGA开发已广泛应用于电子电路的设计与实现中,图1为基于EDA软件的FPGA开发流程[3]。

1 电子表决器电路

图1 基于EDA软件的FPGA开发流程

传统的电子表决器通过逻辑门电路实现、功能简单、不易扩展,表1是一种3人表决器的真值表,图2是由逻辑门组成的电路图[4]。

表1 3人表决器真值表

图2 3人表决器逻辑门电路

2 基于FPGA的电子表决器

2.1 8人表决器电路

结合VHDL语言在FPGA平台实现电子表决器电路设计,可减小系统面积,方便扩展升级[5],以下程序是使用VHDL语言描述的8人表决电路。

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY vote IS

PORT(FF:IN STD_LOGIC_VECTOR(1 TO 8);—FF:一维数组FF用来表示8位表决者

CLK:IN BIT;

AA,QQ:OUT BIT);—AA:赞成人数。QQ:表决最终是否通过(‘1’为通过,‘0’为未通过)

END vote;

ARCHITECTURE behaver OF vote IS

SIGNAL A:BIT;

BEGIN

PROCESS(FF)

VARIABLE SUM:STD_LOGIC_VECTOR(4 DOWNTO 1);

VARIABLE Q:BIT;

BEGIN

SUM:=“0000”;

FOR N IN 1 TO 8 LOOP

SUM:=FF(N)+SUM;

END LOOP;

AA≤SUM;

IF(SUM >4)THEN Q:=‘1’;

ELSE Q:=‘0’;

END IF;

A≤Q;

END PROCESS;

PROCESS(CLK,A)—消除竞争与冒险

BEGIN

IF(CLK'EVENT AND CLK=‘1’)THEN QQ≤A;

END IF;

END PROCESS;

END behave;

2.2 10人表决器电路

通过8人表决电路表决通过时电路状态的观察和验证,使用VHDL语言在FPGA平台实现10人表决器电路设计[6]。在8人表决器编程基础上修改程序,实现10人表决器电路的设计。编程中完成参与表决的每个人均可选择赞成、放弃或弃权。同时,增加了控制键,可增加专人在进行表决过程中的控制,实现了表决的开始、结束和数据的锁存[7]。

3 电路仿真

图3是8人表决器电路时序波形,从图中可看出程序实现了设计要求,在8人表决器程序的RTL生成电路界面显示有9个逻辑门和硬件资源组成电路。

图3 8人表决器时序波形

按图4所示进行管脚锁定后,即可在实验箱上进行验证,将程序下载到实验平台后,获取实验结果,经验证符合设计要求。

图4 引脚锁定

图5为程序仿真结果。在10人表决器的RTL电路界面图中可看出,其比8人表决器程序的RTL电路界面图多出了一些硬件资源,若单独使用逻辑门设计电路将是一件复杂的工作,且不便于修改和测试[8]。

而使用EDA进行设计,还可方便地进行系统扩展,如上述程序中只需增加几个输出端口,将SUMA,SUMB,SUMC的值赋给相应端口,在外接数码管便可显示出赞成、反对、弃权的人数。或增加声音模块,使系统更具实用价值。而进行这些工作只需改变程序,加入现成的元器件即可[9]。

图5 10人表决电路仿真图

4 结束语

电子表决器,做为投票系统中的客户端,是一种代表投票或举手表决的装置[10]。基于FPGA电子表决器的设计解决了传统投票表决方式存在投票耗时长、计票任务重,且易于出错、易受人控制等缺点,故在表决、选举中获得了广泛应用。

[1]Stefan Sjoholm Le.用VHDL设计电子线路[M].边计年,薛宏熙,译.北京:清华大学出版社,2000.

[2]禇振勇,翁木云.FPGA设计与应用[M].西安:电子科技大学出版社,2002.

[3]潘松,黄继业.EDA技术与VHDL[M].北京:清华大学出版社,2007.

[4]马秀花,周又玲.基于 QuartusⅡ的七人表决电路设计[J].无线互联科技,2011(12):31 -33.

[5]Gail Gray F.VHDL设计表示与综合[M].李宗伯,王蓉晖,译.北京:机械工业出版社,2002.

[6]王锁萍.电子设计自动化(EDA)教程[M].成都:电子科技大学出版社,2000.

[7]黄正谨,徐坚,章小丽,等.CPLD系统设计技术入门与应用[M].北京:电子工业出版社,2002.

[8]蒋璇,藏春华.数字系统设计与PLD应用技术[M].北京:电子工业出版社,2001.

[9]王金明,杨吉斌.数字系统设计与Verilog HDL[M].北京:电子工业出版社,2002.

[10]潘松,王国栋.VHDL实用教程[M].西安:电子科技大学出版社,2001.

猜你喜欢

电子科技电路设计逻辑
刑事印证证明准确达成的逻辑反思
西安展天电子科技有限公司
宝鸡市普瑞思电子科技有限公司
逻辑
创新的逻辑
Altium Designer在电路设计中的应用
2S1广州弘傲电子科技有限公司
213B广州市码尼电子科技有限公司
负反馈放大电路设计
女人买买买的神逻辑