8位减法器的设计.docx

上传人:小飞机 文档编号:3151125 上传时间:2023-03-11 格式:DOCX 页数:11 大小:39.54KB
返回 下载 相关 举报
8位减法器的设计.docx_第1页
第1页 / 共11页
8位减法器的设计.docx_第2页
第2页 / 共11页
8位减法器的设计.docx_第3页
第3页 / 共11页
8位减法器的设计.docx_第4页
第4页 / 共11页
8位减法器的设计.docx_第5页
第5页 / 共11页
亲,该文档总共11页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《8位减法器的设计.docx》由会员分享,可在线阅读,更多相关《8位减法器的设计.docx(11页珍藏版)》请在三一办公上搜索。

1、8位减法器的设计课题名称 设计内容及要求 设计工作量 8位减法器的设计 试设计一个8位二进制并行减法器,它由两个4位二进制并行减法器级联而成。要求被减数与减数之差在数码管上以十进制数显示出来,LED1显示借位输出,当被减数大于减数时,LED1熄灭表示没在借位,当被减数小于减数时,LED1亮表示有借位,其它7位LED平时在熄灭状态。系统提供50MHZ频率的时钟源。完成该系统的硬件和软件的设计,并制作出实物装置,调试好后并能实际运用,最后就课程设计本身提交一篇课程设计说明书。 1、VHDL语言程序设计; 2、波形仿真; 3、在实验装置上进行硬件测试,并进行演示; 4、提交一份完整的课程设计说明书,

2、包括设计原理、程序设计、程序分析、仿真分析、硬件测试、调试过程,参考文献、设计总结等。 起止日期 第1天 第2天 设计内容 课题介绍,答疑,收集材料 设计方案论证 进一步讨论方案, 对设计方案进行必要的修正,方案确定后开始进行VHDL语言程序设计 设计VHDL语言程序 在实验装置上进行硬件测试,编写设计说明书 编写设计说明书 年 月 日 年 月 日 备注 进度安排 第3天 第4天 第5天 教研室 意见 系主管领导意见 目 录 一、课程设计目的 . 2 二、课程设计要求 . 2 三、设计内容 . 2 1、设计思路 . 2 2、设计步骤 . 3 1)先设计减数和被减数值的锁定并判定借位的输出值 .

3、 3 2)设计减法器的基本功能 . 3 3)设计计数器的分频操作降低输出频率是结果显示清楚 . 4 4)数码管的段选设计 . 4 四、设计仿真波形 . 5 1)减数被减数值的锁定 . 5 2)数码管片选及段选 . 6 五、程序中各个引脚的分配如下 . 6 六、设计总程序 . 6 七、设计仿真图 . 9 八、设计心得及体会 . 9 参考文献 . 10 一、课程设计目的 系统提供一个50MHz的时钟,要求输入一个8位的二进制数作为被减数并锁定,然后再输入一个8位二进制数并锁定,进行相减后的结果用十进制在数码管上显示出来,并用一个led灯来显示借位情况。 二、课程设计要求 试设计一个8位二进制并行减

4、法器,它由两个4位二进制并行减法器级联而成。要求被减数与减数之差在数码管上以十进制数显示出来,LED1显示借位输出,当被减数大于减数时,LED1熄灭表示没在借位,当被减数小于减数时,LED1亮表示有借位,其它7位LED平时在熄灭状态。系统提供50MHZ频率的时钟源。完成该系统的硬件和软件的设计,并制作出实物装置,调试好后并能实际运用,最后就课程设计本身提交一篇课程设计说明书。 三、设计内容 1、设计思路 方法一: 由于要设计的是一个8位的二进制减法器,可采用4位减法器并联的例化语句的方法来实现。在是用例化语句的过程中需要的就是输入的是8位二进制编码,输出的结果也是二进制编码的形式,所以在输出结

5、果的同时还需要将结果进行转化后才能在数码管显示出来,否则只能用16进制来显示。其中的是否发生借位的部分,完全可以用一个输出指向led的亮灭来表示。在此过程中数码管的显示还需要设计好动态扫描。 方法二; 8位二进制减法器的设计,我们在设置减法器前就先将数据转化,然后再进行减法器的设置,在这里是否要借位可以用if语句来判定后直接输出一个值送入到led显示结果,并把结果直接送入数码管显示。 2 2、设计步骤 1)先设计减数和被减数值的锁定并判定借位的输出值 程序如下: PROCESS(AB,K1,K2) VARIABLE S1,S2:STD_LOGIC_VECTOR(7 DOWNTO 0); BEG

6、IN IF K1EVENT AND K1=1 THEN S1:=AB; END IF; IF K2EVENT AND K2=1 THEN S2:=AB; END IF; TMP1=CONV_INTEGER(S1); TMP2TMP2 THEN TMP=TMP1-TMP2; FLAG=10; CO=0; ELSE TMP=TMP2-TMP1; FLAG=11; CO=1; END IF; END PROCESS; 2)设计减法器的基本功能 程序如下: PROCESS(TMP,CLK) VARIABLE A,B,C:INTEGER RANGE 0 TO 9; BEGIN IF CLKEVENT A

7、ND CLK=1 THEN C:=TMP REM 10 ; B:=(TMP-C) REM 100/10; A:=(TMP-B*10-C) REM 1000/100; A1=A; B1=B; C1=C; END IF; 3 END PROCESS; 3)设计计数器的分频操作降低输出频率是结果显示清楚 程序如下: PROCESS(CLK) VARIABLE NUM:INTEGER RANGE 0 TO 50000000; BEGIN IF CLKEVENT AND CLK=1 THEN IF NUM100 THEN NUM:=NUM+1; ELSE NUM:=0; CLK1= NOT CLK1;

8、END IF; END IF; END PROCESS; 3)设计数码管的片选 程序如下: PROCESS(CLK1) BEGIN IF CLK1EVENT AND CLK1=1 THEN SEL7SSEL=00000001;DISPSEL=00000010;DISPSEL=00000100;DISPSEL=00001000;DISPSEL=00000000;DISPLED7SLED7SLED7SLED7SLED7SLED7SLED7SLED7SLED7SLED7SLED7SNULL; END CASE; END PROCESS; END; 四、设计仿真波形 1)减数被减数值的锁定 图4-1

9、值的锁定仿真图 5 2)数码管片选及段选 图4-2 结果的显示仿真图 五、程序中各个引脚的分配如下 引脚名称 AB0 AB1 AB2 AB3 AB4 AB5 AB6 AB7 K1 K2 CO CLK 引脚编号 M3 M4 N1 N2 N3 N4 R1 P3 T10 N14 R10 J3 连接网络 引脚名称 SEL0 SEL1 SEL2 SEL3 LED7S0 LED7S1 LED7S2 LED7S3 LED7S4 LED7S5 LED7S6 引脚编号 G4 G3 E2 F2 K4 L2 H1 H4 H3 L4 L3 连接网络 FPGA_M1 FPGA_M2 FPGA_M3 FPGA_M4 FP

10、GA_M5 FPGA_M6 FPGA_M7 FPGA_M8 KEY1 KEY2 LED1 50MHZ E_7SEG-A1 E_7SEG-A2 E_7SEG-A3 E_7SEG-A4 E_7SEG-G E_7SEG-F E_7SEG-E E_7SEG-D E_7SEG-C E_7SEG-B E_7SEG-A 六、设计总程序 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; 6 ENTITY a8jfq IS PORT( CLK,K1,K2:IN STD_LOGIC; AB:IN STD_LOGI

11、C_VECTOR(7 DOWNTO 0); SEL:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); LED7S:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); CO:OUT STD_LOGIC ); END; ARCHITECTURE ONE OF a8jfq IS SIGNAL A1,B1,C1:INTEGER RANGE 0 TO 9; SIGNAL FLAG,DISP:INTEGER RANGE 0 TO 15; SIGNAL TMP1,TMP2,TMP:INTEGER RANGE 0 TO 255; SIGNAL CLK1:STD_LOGIC;

12、SIGNAL SEL7S:STD_LOGIC_VECTOR(1 DOWNTO 0):=00; BEGIN PROCESS(AB,K1,K2) VARIABLE S1,S2:STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN IF K1EVENT AND K1=1 THEN S1:=AB; END IF; IF K2EVENT AND K2=1 THEN S2:=AB; END IF; TMP1=CONV_INTEGER(S1); TMP2TMP2 THEN TMP=TMP1-TMP2; FLAG=10; CO=0; ELSE TMP=TMP2-TMP1; FLAG=11;

13、CO=1; END IF; END PROCESS; PROCESS(TMP,CLK) VARIABLE A,B,C:INTEGER RANGE 0 TO 9; 7 BEGIN IF CLKEVENT AND CLK=1 THEN C:=TMP REM 10 ; B:=(TMP-C) REM 100/10; A:=(TMP-B*10-C) REM 1000/100; A1=A; B1=B; C1=C; END IF; END PROCESS; PROCESS(CLK) VARIABLE NUM:INTEGER RANGE 0 TO 50000000; BEGIN IF CLKEVENT AND

14、 CLK=1 THEN IF NUM100 THEN NUM:=NUM+1; ELSE NUM:=0; CLK1= NOT CLK1; END IF; END IF; END PROCESS; PROCESS(CLK) BEGIN IF CLKEVENT AND CLK=1 THEN SEL7SSEL=00000001;DISPSEL=00000010;DISPSEL=00000100;DISPSEL=00001000;DISPSEL=00000000;DISPLED7SLED7SLED7SLED7SLED7SLED7SLED7SLED7SLED7SLED7SLED7SNULL; END CA

15、SE; END PROCESS; END; 七、设计仿真图 八、设计心得及体会 经过本次课程设计通过本次设计对FPGA有了进一步的了解,在这次课程设计的过程中设计的2套方案只是先了一套有点遗憾,第一条方案在之前的过程的设计过程中都是正常的而且仿真也是没有问题,就是在进行实物显示是一致是乱码,也没有在课程设计结束前解决。只能是另外想办法,通过别的思路和设计来实现该功能。在谢老师的帮助下通过自己网上找资料终于实现了预期的功能,本次课程设计学到了许多东西。期待下次能实现更多的功能。 9 参考文献 潘松,王国栋. VHDL使用教程. 成都:电子科技大学出版社, 2000 潘松,王国栋 EDA技术实用教程VHDL版 北京:科技出版社,2013 蒋国强. EDA技术与应用. 北京:电子工业出版社,2007 10

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号