FPGA VHDL10进制计数器

第一篇:FPGA VHDL10进制计数器

       《FPGA原理及应用》

       实验报告书(6)

       题 目

       学 院 姓 名 指导教师

       7段显示译码器的设计

       专 业 学 号

       自动化

       2022年 10-12月

       1.实验目的

       (1)进一步熟悉和掌握Qartus II的使用方法;(2)进一步掌握FPGA实验箱使用方法;(3)学习和掌握电路原理图的设计流程;(4)深化理解VHDL语言的使用方法

       2.实验内容

       使用Qartus II的元件库,通过VHDL语言进行设计7段显示译码器,并使用FPGA实验箱对程序进行硬件下载,验证。

       3.实验条件

       开发软件:Qartus II 8.0 实验设备:FPGA实验箱

       拟用芯片:Altera EP3C55F484C8 4.实验设计

       1)系统原理

       根据7段显示译码器的设计原理,7段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是2进制的,所以输出表达都是16进制的,为了满足16进制的译码显示,最方便的方法就是利用译码程序在FPGA/CPLD中来实现。例3-5作为7段译码器,输处信号LED7S的7位分别接数码管的7个段,例如当LED7S输出为“1101101”时,数码管的7个段:g、f、e、d、c、b、a分别接1、1、0、1、1、0、1;接有高电平的段发亮,于是数码管显示“5”。注意,这里没有考虑表示喜爱哦书店的发光管,如果要考虑,需要增加段h。

       7段显示译码管字形对应输出输入

       2)程序

       如下所示为7段显示译码器程序 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY LED IS PORT(A:IN STD_LOGIC_VECTOR(3 DOWNTO 0);LED7S:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END ENTITY LED;

       ARCHITECTURE bhv OF LED IS BEGIN PROCESS(A)

       BEGIN

       CASE A(3 DOWNTO 0)IS WHEN “0000”=>LED7S<=“0111111”;WHEN “0001”=>LED7S<=“0000110”;WHEN “0010”=>LED7S<=“1011011”;WHEN “0011”=>LED7S<=“1001111”;WHEN “0100”=>LED7S<=“1100110”;WHEN “0101”=>LED7S<=“1101101”;WHEN “0110”=>LED7S<=“1111101”;WHEN “0111”=>LED7S<=“0000111”;WHEN “1000”=>LED7S<=“1111111”;WHEN “1001”=>LED7S<=“1101111”;WHEN “1010”=>LED7S<=“1011000”;WHEN “1011”=>LED7S<=“1001100”;WHEN “1100”=>LED7S<=“1100010”;WHEN “1101”=>LED7S<=“1101001”;WHEN “1110”=>LED7S<=“1111000”;WHEN “1111”=>LED7S<=“0000000”;WHEN OTHERS=> NULL;END CASE;END PROCESS;END bhv;

       1电路波形图

       工程编译完成后,必须对其功能和时序性质进行仿真测试。下图就是实现仿真后的波形,满足原设计要求。如图6-1所示。

       图6-1 7段显示译码管波形图

       2)引脚锁定和硬件测试

       为了能够对7段显示译码管进行硬件验证,应将其输入信号锁定在芯片确定的引脚上,编译下载。其锁定输入信号、输出信号。

       图6-2 硬件引脚图

       3)编译文件下载

       编译文件下载结果如图6-3所示。

       图6-3 全加器编译文件下载

       5.实验结果

       使用实验箱LED数码管两个,进行00-99的位显,两个开关做复位清零控制端,通过FPGA实验箱上的LED显示模块的一个二极管的明灭来测试实验进位信号,判断实验是否成功。

       图6-4 实验箱进行试验

       6.心得体会

       通过这次实验,让我学习到了如何在Qartus II中使用原理图的方式做出所需要的功能器件,以及顶层设计的方法与优点。也学会了如何使用FPGA实验箱数码显示管。

第二篇:VHDL100进制计数器

       ibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cdu100 is

       port(CLK:in std_logic;

       Q:inout std_logic_vector(7 downto 0);

       COUT:out std_logic);end cdu100;architecture three of cdu100 is signal cout1,cout2:std_logic_vector(3 downto 0);begin

       Q<=cout2&cout1;process(CLK,cout2,cout1)begin if(CLK'event and CLK='1')

       then if(cout2=9 and cout1=9)then cout2<=“0000”;cout1<=“0000”;

       else if(cout1=9)then cout2<=cout2 1;cout1<=“0000”;

       else cout2<=cout2;cout1<=cout1 1;

       end if;

       end if;end if;if(cout2=9 and cout1=9)then COUT<='1';else COUT<='0';end if;end process;end three;

第三篇:进制教案[定稿]

       十进制与二进制之间的转化教案

       【教学目的与要求】

       1、熟悉数制相关概念;

       2、掌握十进制与二进制的互化;

       3、了解借助计算器实现数制之间的转化。【教学重点与难点】

       1、难点:十进制转化为二进制

       2、重点:十进制与二进制相互转化

       【学习者分析】

       教材上这一部分写的比较简单但也比较抽象,以高一学生现在的认知结构还不是很容易理解,而且直接引入什么“按权相加,除二取余”的方法,学生必定听得一头雾水。因此,本课时由浅入深,首先给出这些概念以帮助学生更好地理解和接受、消化吸收本节课的知识。【教学过程】

       1.引入:大家都知道,计算机中采用的是二进制,但用计算机解决实际问 题时对数值的输入输出通常使用十进制,这就有一个十进制向二进制转换或由二 进制向十进制转换的过程。也就是说,在使用计算机进行数据处理时首先必须把输入的十进制数转换成计算机所能接受的二进制数;计算机在运行结束后,再把二进制数转换为人们所习惯的十进制数输出。这种将数由一种数制转换成另一种数制称为数制间的转换。本节只讨论十进制整数与二进制的相互转化。2.新知识:数制转换:这节课我们主要来讲一下二进制——十进制之间的转换。下面我们结合实例来讲解一下。(1)十进制整数转换为二进制整数:十进制整数转换为二进制整数采用“除2取余,逆序排列”法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零或者商为一时为止,然后把所有余数按逆序排列,也就是 把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。这就是所谓“除2取余,逆序排列”。

       例 把二进制数11转换成十进制数。

       大家要好好记住这一点,整数是将所得的余数逆序排列。

       (2)二进制数转换成十进制数 :通过对学生熟悉的十进制分析进制中的权、基数概念,并进一步讨论如何针对不同的二进制进行转化,我们最开始学习的就是十以内的加法,之后是两位数的加法,在两位数加法的学习中,老师是不是经常会说,要注意逢十进一?像这样按进位的原则进行记数的方法叫做进位记数制。“进位记数制”简称为“数制”或“进制”。我们平时用的最多的就是十进制了,那么,大家想一下,还有没有其他的进制呢?比如说,小时、分钟、秒之间是怎么换算的?一小时等于60分钟,一分钟等于60秒,这就是60进制。由此也可以推断出,每一种数制的进位都遵循一个规则,那就是——逢N进1。这里的N叫做基数。所谓“基数”就是数制中表示数值所需要的数字字符的总数,比如,十进制中用0——9来表示数值,一共有10个不同的字符,那么,10就是十进制的基数,表示逢十进一。下面我们再引入一个新概念——“位权”。这就叫做位权,也就是基数的若干次幂。把二进制数转换成十进制数就是用“按权相加”法,把二进制数首先写成加权系数展开式,然后按十进制加法规则求和。

       例 将一个二进制数10101转换为十进制数。

        好了,我们这节课要讲的主要内容就是这些了,下面,我们来就这些内容做一些练习,看看大家掌握的怎么样了。3.练习

       a、(101)2 b、二进制数转换成十进制数(101)2 4.小结

       本节课我们主要讲了数制的概念以及二——十进制转换,这节课的难点就是要理解位权的概念。重点掌握的内容当然这二进制和十进制之间的相互转换方法,下面我们来一起回顾一下,二进制转化成十进制用的是—— “按权相加法”。十进制转化成二进制既是重点也是难点,不大容易掌握,大家下去要认真思考一下。十进制转化成二进制,整数是 “除2取余,逆序排列”。好了,这节课就上到这里吧。希望大家下去以后把这几道题做一下,巩固一下本节课所讲的内容。5.作业

       a、将下列数字用按权相加法展开(568)10(101)2 b、二进制数转换成十进制数(101)2 c、十进制 转换成二进制数(173)10 6.板书设计

       2.1 十进制与二进制的转化 2.2 借助于计算器实现进制转化

第四篇:常用进制及其转换

       常用进制及其转换

       知识目标:

       1、了解数制的基本概念

       2、掌握其它进制转十进制和十进制转其它进制的方法

       情感目标:

       1、培养学生严谨的思考方式

       2、培养学生相互合作的精神

       教学重点:

       1、非十进制转化为十进制

       2、十进制转化为非十进制

       3、二进制、八进制和十六进制的相互转化 教学难点:非十进制转化为十进制 教学方法:启发式、讨论法 教学内容:

       一、引入进制的概念

       举例:

       日常使用:如时间1min=60s(六十进制),货币1元=10角(十进制),1打火柴=12包火柴(十二进制)

       1、常用进制:十进制、二进制、八进制、十六进制

       2、基本要素

       进位计数制的三个基本要素:

       (1)数码:一组用来表示某种数制的符号。如:二进制中0,1。(2)基数:数值所用的数码个数。

       如十进制基数为10,有 0,1,2,3,4,5,6,7,8,9十个不同的数码,逢十进一。二进制基数为2,有0,1两个不同的数码,逢二进一

       八进制基数为8,有0,1,2,3,4,5,6,7八个不同的数码,逢八进一

       十六进制基数为16,有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F十六个不同的数码,逢十六进一

       (3)位权:数码在不同位置上的权值。R进制数中,整数部分第i位的位权为,小数部分第j位的位权为

       3、定义

       进位计数制的定义:把数码按照先后顺序排列成数位,由低到高位计数,且满进位。

       。如十进制数127.5中我们按位权展开就是

       二、表示法

       1、下标法,用圆括号将给出的数括起来,在右括号的下方注明该数的进制,如二进制数1011表示为

       2、后缀法,在给出的数的最后面用后缀字母来表明数制。B表示二进制,O表示八进制,D表示十进制,H表示十六进制,如,十六进制数2A4BH等。

       3、计算机的内部表示:

       (1)数据在计算机内部都是以二进制码的形式表示的,其特点是只有0和1两个数字符号,且逢二进一。

       (2)优点:物理实现容易,运算简单,数据的传输和处理抗干扰性强,不易出错,可靠性高,易于进行逻辑运算。

       三、进制间的转换:

       实质上是基数间的转换。转换的基本原则是将整数部分和小数部分分别按转换方法进行转换,用小数点进行连接。

       1、二进制数、八进制数、十六进制数转换为十进制数 方法:按位权展开求和:

       以二进制转换为十进制数为例,其他两个转换类似

       2、十进制转换为二进制数、八进制数和十六进制数

       方法:整数部分转换采用除R取余,直到商为0为止,倒排。小数部分,采用乘R取整的方法,顺排。

       以十进制数转化为二进制为例,其他两种类似 例:将十进制数

       转化为二进制,结果为

       注意:在很多情形下“乘2取整”的过程不是经过有限次运算就可结束,而要无限次的进行下去,所以需要根据精度要求来选取适当的位数。如样。

       3、二进制与八进制、十六进制的相互转化 ①二进制与八进制的相互转化 方法:“三合一法”和“一分为三法”

       八进制中的1位数相当于二进制中的3位数,因此,只需以小数点为界,整数部分:自右向左,三个一组,不够补零,每组对应一个八进制数码 小数部分:自左向右,三个一组,不够补零,每组对应一个八进制数码。八进制

       0 二进制000 001 010 011 100 101 110 111 二进制与十六进制的相互转化 方法:“四合一法”和“一分为四法”

       十六进制中的1位数相当于二进制中的4位数,因此,只需以小数点为界 整数部分:自右向左,四个一组,不够补零,每组对应一个十六进制数码。小数部分:自左向右,四个一组,不够补零,每组对应一个十六进制数码。以八进制转化为二进制为例,其他类似。例如:将(207.54)8转换成二进制: 2

       0

       7.010 000 111.101 100 所以,(207.54)8=(010000111.101100)2

       =(10000111.1011)2

       就是这

       四、复习思考题

       1、为什么在计算机中数据几乎全部采用二进制表示?

       2、二进制数、八进制数、十六进制数转换为十进制数,十进制转换为二进制数、八进制数和十六进制数,十进制转换为二进制数、八进制数和十六进制数分别应遵守什么转换规则?

       3、对下列进位计数制进行相互转化。

第五篇:进制转换

       【知识讲解】§1.3 进制转换 2022-9-17 15:26:00 §1.3 十进制数、二进制、八进制数、十六进制数 【教学目的】

       通过教学,使学生了解和掌握计算机数的表示原理,掌握和理解二进制数、八进制数、十六进制数的概念,熟练掌握二进制、八进制数、十六进制数与十进制数的相互转换法则。【教材分析】

       1、本节重点要使学生掌握二进制数、八进制数、十六进制数的概念,熟练掌握二进制数、八进制数、十六进制数与十进制数的相互转换法则。

       2、学生第一次接触二进制数、、八进制数、十六进制数,对于它的概念的理解是本节的难点。同职校学生运算能力差,十进制数转换成二进制数、、八进制数、十六进制数可能有点难,只能靠多练来解决。【教学过程】

       一、复习: 计算机应用在那几个方面?举一例说明。从“科学计算”的应用引出进位计数制的概念。

       二、进位计数制(以十进制为例):

       [例1] 8756.74=8*1000 7*100 5*10 6*1 7*0.1 4*0.01 =8*103 7*102 5*101 6*100 7*10-1 4*10-2 数码(十个):0、1、2、3、4、5、6、7、8、9 进位法则:逢十进一 基数:10(数码的个数)权:10 n-1 „„.十制数的表示方法:(*****)10 或 ***** D 任何一个十进制数都可以写成以10为基数按权展开的多项式,即: S=A1*10 n-1 A2*10 n-2 „ AN-1*101 AN*100 AN 1*10-1 „ 说明:(A1,A2,„„AN)表示各位上的数字(强调:第一个权的指数是多少?与位数的关系)三、二进制数介绍

       1、计算机中为何采用二进制数:

       十进制缺点:数码多,对计算机逻辑电路要求高

       二进制运算简单、对计算机逻辑电路要求简单,适用于电子线路特点 1.可行性

       二进制数只有0,1两个数码,采用电子器件很容易实现,而其它进制则很难实现。2.可靠性

       二进制的0,1两种状态,在传输和处理时不容易出错。3.简易性

       二进制的运算法规简单,这样,使得计算机的运算器结构大大简化,控制简单。4.逻辑性

       二进制的0,1两种状态,可以代表逻辑运算中的"假"和"真"两种值。

       2、二进制: 数码(2个):0,1 进位法则:逢二进一(1 0=1 0 1=1 0 0=0 1 1=10)基数:2 权:2 n-1 „„

       二进制数的表示方法:(*****)2 或 ***** B [例2]在二进制中:1 1=10 10 1=11 11 1=100 100 1=101 101 1=110

       3、二进制转换成十进制:

       [例3](1101)2= 1*23 1*2

       2 0*2 1*20=8+4+0+1=(13)10 [例4](10110.101)2= 1*24 0*23 1*22 1*21 0*20

        1*2-1 0*2-2 1*2-3=16 0 4+2 0+0.5 0 0.125=(22.625)10 结论:把二进制转换成十进制只要把二进制数写成基数2按权展开的多项式。(1)练习:二进制转换成十进制:(1110101)2、(110110.111)2

       4、十进制数转换成二进制数:

       (1)十进制整数转换成二进制 法则:除二取余法(倒读)

       练习:(135)10=(10000111)2(2)十进制小数转换成二进制

       法则:乘二取整法(顺读)

       [例6](0.3125)10=(0.0101)2 练习:(0.625)10=(0.101)2

       (894.875)10=(1101111110.111)2 思考:计算机中为何采用二进制数?二进制数有什么缺点?引出八进制和十六进制。23=8 四、八进制概念:

       数码(8个):0、1、2、3、4、5、6、7 进位法则:逢八进一 基数:8 权:8 n-1 „„.八进制数的表示方法:(*****)8 或 ***** O 如:(167)

       8、(56)

       8、(12.75)

       8、(0.711)

       8、理解思考:在八进制中 7 1=? 7 2=? 10-1=?

       1、八进制转换成十进制数

       方法:把八进制转换成十进制只要把八进制数写成基数8按权展开的形式的多项式

       [例7](145)8=14*82 4*81 5*80=64 32 5=(101)10 [例8](51.6)16=5*81 1*80 6*8-1=40 1+0.75=(41.75)10 练习:八进制转换成十进制:(327)

       8、(11.1)8

       2、十进制整数转换成八进制:

       法则:除八取余法(倒读)

       [例9](75)10=(113)8 练习:(262)16=(406)8 思考:将十进制小数转换成八进制的法则是什么?具体不作要求 五、十六进制概念:10、11、12、13、14、15 数码(十六个):0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F 进位法则:逢十六进一 基数:16 权:16 n-1 „„.十六进制数的表示方法:(*****)16 或 ***** H 如:(167)

       16、(1AB)

       16、(AD.E16)

       16、(0.1D5)16、1、十六进制转换成十进制数

       方法:把十六进制转换成十进制只要把十六进制数写成基数16按权展开的多项式

       [例1](58)16= 5*161 8*160

       =80+8=(88)10 [例4](1AB.C8)16= 1*162 10*161 11*160 12*16-1 8*16-=256 160+11 0.75+0.03125=(427.78125)10 练习:十六进制转换成十进制:(21)

       16、=(33)10(AB)

       16、=(171)10(100)

       16、(256)16

       2、十进制整数数转换成十六进制 法则:除十六取余法(倒读)

       [例9](3901)10=(113)16 练习:(1262)16=(4EE)16 思考:将十进制小数转换成十六进制的法则是什么?具体不作要求

       六、小结:

       1、数制

       ??有一个基数R,数字中使用0,1,2,„„(R-1)个符号 ??每位有固定的权

       ??位序的排列法:从小数点处算起,由小数点向左,规定位序为0,1,2„„;由小数点向右,规定位序为-1,-2,„„ ??采用“逢R进一的”的进位方法

       ??对任何一种进位计数制表示的数都可以写出其权展开的多项式之和 填表:

       R进制 数码 进位法则 基数 权 十进制

       二进制

       八进制

       十六进制

       2、R进制数转换成十进制数的法则:把R进制转换成十进制只要把R进制数写成基数R按权展开的多项式

       (1098)10=1×103 0×102 9×101 8×100(2C.4B)16=2×161 C×160 4×16-1 B×16-2(101.11)2=1×22+0×21+1×20+1×2-1+1×2-2

       3、十进制数转换为R进制: 整数部分:除R取余法(倒读)。小数部分:乘R取整法(顺读)。(100)10=(1100100)2(0.625)10 =(0.101)2(894.8125)10=(1101111110.1101)2

       (C9.5)16转换为十进制(答案(201.3125)10)(246)10转换为十六进制(答案(F6)16)(37.5)8转换为十进制(答案(31.625)10)(140)10转换为八进制(答案(214)8)

       (56.125)10转换为二进制(答案(111000.01)2)(1000111.1101)2转换为十进制(答案(71.8125)10)

       教学内容

       第2课 进制的转换与应用

       教材及册别

       信息技术第二册

       课堂类型

       新授

       教 学 目 标

       认知目标

       1、了解数的进制。

       2、了解"信息"与计算机能够识别的二进制代码的关系。

       3、像理解十进制一样理解二进制。

       4、了解数的进制之间的关系。

       技能目标

       1、熟练掌握二进制的表示法。

       2、掌握二进制数与其它进制数之间的转换

       情感目标

       培养学生的逻辑运算能力、让学生懂得学科之间有着必然的联系,而数学是学好计算机的基础。

       教学重点

       1、二进制的表示法

       2、将二进制转换为十进制

       3、将其它进制转换为二进制

       如何处理教学重点

       利用数学计算法,展开求和的方法来计算二进制转换十进制

       采用除2取余法计算十进制转换二进制。

       教学难点

       1、对于基数与权的理解

       2、将十进数转换为二进制数

       1、以分析例子来介绍。(过程略)

       2、整数部分:除2取余

       小数部分:乘2取余

       教 学 过 程

       过程纲目

       教师活动

       学生活动

       时间

       总结与反思

       一、信息搜集整理

       导入

       60秒= 分钟

       60分= 小时

       24小时= 天

       10分= 角

       日常生活中存在着许多进制,它们帮助我们更准确、方便地传达各种信息。再比如电灯有开、关两种状态,电压有高、低两种状态,计算机内部的电子电路也有开、关两种状态,如果用数字来表示这两种状态,我们就用0和1来表示,我们把它称为二进制。

       1、基数

       指进位制中会产生进位的数值,它等于每个数位中所允许的最大数码值加1,也就是各数位中允许选用的数码个数。

       学生回答

       阅读教材第9页内容 通过例子理解定义

       4` 8`

       从生活常见事物出发,引出进制概念,学生容易接受

       二、信息处理

       三、处理信息

       四、作品共享

       十进制:0、1、2、…9(10个)

       二进制:0、1(2个)

       2、位权

       整数部分位权是以基数为底,以数码所在位数减1为指数的整数次幂。

       小数部分位权是以基数为底,以数码所在位数的相反数为指数的整数次幂。

       例;十进制个位数位权为

       101-1=100=1 二进制个位数位权为

       21-1=20=1 数制间转换

       二进制 十进制

       (10111.11)2=()10 过程略 十进制 二进制

       (58)10=()2 过程略

       (0.625)10=()2

       1、(11001)2=()10

       2、(1110.011)2=()10

       3、(31)10=()2

       4、(79)10=()2

       5、(0.5)10=()2

       6、(0.678)10=()2

       1、计算、互相验证结果

       2、每组派一名同学说出其中两道题的运算过程

       看教材

       举例计算

       看屏幕展示例题

       根据教师计算方法,自行计算,然后验证结果

       学生计算

       13` 10` 10`

       展开求和法

       整数部分:逆序取

       除2取余法

       小数部分:顺序取

       乘2取整法

       学生在了解了计算方法后,能很快进行二进制与十进制间的转换