十六进制加减可逆计数器设计
- 格式:doc
- 大小:122.00 KB
- 文档页数:3
本科生实验报告十六进制加减计数器电路实验专业名称:课程名称:数据逻辑与EDA指导教师:学生学号:学生姓名:二○一九年十一月1、实验目的1.1了解时序逻辑电路的基本功能1.2掌握时序逻辑电路的设计方法1.3熟悉时序逻辑电路的工作过程2、实验原理2.1定义:在逻辑电路中,任何时刻的稳定输出不仅取决于该时刻的输入,且与过去的输入相关。
2.2类型:边沿触发器、电平触发器、加法计数器、减法计数器、可逆计数器、序列检测器、采样控制器等。
3、实验设备:3.1 PC机3.2 教学实验箱3.3 通信线4、实验内容:4.1任务:设计一个两位16进制加减可逆的计数器,具有内部脉冲和手动计数功能,结果在7段数码管上显示。
4.2接线:(1)用插线连接插孔24,32,25到实验台的1HZ,10HZ和100HZ上,作为CLK1HZ,CLK10HZ,CLK100kHZ,三个频率的输入端;(2)用插线将实验台上的6个数码管的七段码a-h连接到插孔40,41,42,43,44,45,47,48上,作为七段码输出端;(3)七段数码管的位码S(0)-S(5)接到实验台的插孔51,52,53,55,57,58上,作为七段码位码输出端;(4)实验台上的开关K0接到插孔26上,作为en的输入开关。
en=1时手动,en=0时为自动;(5)手动脉冲按键din接单脉冲,然后接在28脚上输入;(6)复位键rst接K1开关连接在27脚输入;(7)加减控制键rev接K2开关连接在31脚输入4.3硬件描述语言源代码:module cnt(clk100khz,clk1hz,clk10hz,rst,en,din,scan,dout,rev);input rst;//复位键input rev;//加减控制器input en;//手动或自动计数开关input din;//手动计数脉冲input clk100khz,clk1hz,clk10hz;//分别为数码管刷新,自动计数,手动计数频率output[7:0]dout;//数码管七段码output[5:0]scan;//数码管位码reg[7:0]dout;reg[5:0]scan;reg f1,f2,c;//数码管个位和十位敏感信号;c为手动计数参数reg[2:0]cnt;//数码管扫描参数reg[3:0]dat;//数码管位码扫描参数reg[3:0]data1,data2;//个位和十位计数参数always@(posedge clk10hz) //设置自动计数和手动计数begin if(!din) c<=1; //din为1时,c=0;din为0时,c=1。
一、实训目的本次加减可逆计数器实训旨在通过实际操作,加深对数字电路原理和计数器设计方法的理解,提高动手能力和实践技能。
通过本次实训,使学生掌握加减可逆计数器的设计原理、电路实现方法,并能够熟练运用相关工具进行电路仿真和测试。
二、实训环境1. 实验设备:数字电路实验箱、示波器、万用表、计算机等。
2. 实验软件:Multisim、Proteus等电路仿真软件。
三、实训原理加减可逆计数器是一种能够实现加法、减法、保持和异步清零的计数器。
它由加法计数器、减法计数器、保持电路和异步清零电路组成。
在加法计数器中,计数器的状态每增加1,输出端的状态也相应增加1;在减法计数器中,计数器的状态每减少1,输出端的状态也相应减少1;保持电路使计数器在需要保持状态时保持原有状态;异步清零电路可以在任意时刻使计数器清零。
四、实训过程1. 设计加减可逆计数器电路原理图。
2. 利用Multisim或Proteus等电路仿真软件搭建加减可逆计数器电路。
3. 设置电路参数,进行仿真测试。
4. 分析仿真结果,验证电路功能。
5. 利用数字电路实验箱搭建实物电路。
6. 测试实物电路,验证电路功能。
五、实训结果与分析1. 仿真结果分析通过仿真测试,验证了加减可逆计数器电路的功能。
在加法计数模式下,计数器能够实现从0到9的计数;在减法计数模式下,计数器能够实现从9到0的计数;在保持模式下,计数器能够保持原有状态;在异步清零模式下,计数器能够快速清零。
2. 实物电路测试结果分析利用数字电路实验箱搭建的实物电路,经过测试,验证了电路的功能。
在加法计数模式下,计数器能够实现从0到9的计数;在减法计数模式下,计数器能够实现从9到0的计数;在保持模式下,计数器能够保持原有状态;在异步清零模式下,计数器能够快速清零。
六、实训总结1. 通过本次实训,加深了对数字电路原理和计数器设计方法的理解。
2. 提高了动手能力和实践技能,学会了使用电路仿真软件进行电路设计和测试。
实验五:十六进制加/减可逆计数器设计
一、实验目的
练习时序逻辑电路的Verilog实现。
二、实验要求
实现一个具有加减可逆计数功能的十六进制计数器,用一位控制信号,控制加/减两种计数模式。
三、程序
module jsq(d,clk,clr,load,qd,qout);
input clk,clr,load,qd;
input [3:0] d;
output [3:0] qout;
reg [3:0] cnt;
assign qout=cnt;
always@(posedge clk)
begin
if(!clr)
cnt<=4'b0000;
else if(load)
cnt<=d;
else if(qd)
cnt<=cnt+1;
else
cnt<=cnt-1;
end
endmodule
四、仿真结果
五、实验总结
在实验的开始,不知道怎么编写十六进制加/减可逆计数器,只记得
老师上课讨论过十六进制加计数器,而书上也只有三十二进制加/减可逆计数器,将三十二进制的看懂之后,将原程序改成十六进制的加/减可逆计数器,得到波形图之后对于波形时间设置却有了问题。
问了同学之后,才知道我之前的load和clr的设置有问题。
根据程序clr是低电平有效,而load是高电平有效。
经过更改之后输出成功。
通过本次试验,我了解了自己对计数器的学习还不是很深入,以至于我的这次实验做得不是很顺利。
所以之后的学习我要做好预习工作。
在数字电路中,将能够实现计数逻辑功能的器件称为计数器,计数器计数的脉冲信号是触发器输入的CP信号。
数字电路所接触到的计数器种类繁多,对计数器按进制来分有二进制,十进制和任意进制的计数器;按触发方式来分有同步和异步计数器;按计数的规则来分有加法和减法计数器等。
描述计数器的一个重要参数称为计数器的计数容量。
计数器计数器容量的定义是:计数器所能够记忆的输入脉冲个数。
因例4-1所分析的时序逻辑电路能够记忆的输入脉冲个数是5,所以,例4-1所示电路的计数容量为5,又称为5进制加法同步计数器。
因例4-2所示的电路能够记忆的输入脉冲个数是4,所以,例4-2所示电路的计数容量是4。
又因为该电路计数的规则是加法或减法可逆的,所以,例4-2所示的电路为同步4进制加/减计数器。
因例4-3所示的电路能够记忆的输入脉冲个数是10,所以,该电路的计数容量是10。
又因为该电路的触发信号是异步的,所以,例4-3所示的电路又称为十进制加法异步计数器。
计数器的容量又称为计数器的长度或模,简称计数容量。
由上面的分析可见,计数容量描述了计数器电路所能够输出的有效状态数。
若用n表示计数器输出的二进制数的位数,则该计数器的最大计数容量M为2n。
例4-1,例4-2和例4-3详细的介绍了时序逻辑电路的分析方法,研究时序逻辑电路的问题也是分析和设计,下面以计数器为例子来介绍时序逻辑电路的设计方法。
设计时序逻辑电路的方法与设计组合逻辑电路的方法相似,第一步都是进行逻辑问题的抽象。
在组合逻辑电路的设计中,将具体的逻辑问题抽象成真值表,而在时序逻辑电路的设计中,应将具体的逻辑问题抽象成状态转换图。
第二步都是画出卡诺图,并利用卡诺图进行逻辑函数式的化简。
在组合逻辑电路的设计中,化简所得到的结果为最简与或式,而在时序逻辑电路的设计中,化简所得到的结果为时序逻辑电路中触发器的状态方程。
第三步都是选择器件搭电路,在组合逻辑电路的设计中,通常用得.摩根定理处理最简与或式,将最简与或式转化成与非-与非式来搭电路;在时序逻辑电路的设计中,应先选定所用的触发器器件,然后根据化简得到的触发器状态方程列出相应的驱动方程,根据驱动方程来搭建电路。
《EDA设计》报告题目:模可变16位加法计数器设计专业班级:学生姓名:指导教师:武汉理工大学信息工程学院2014 年 1 月 6 日课程设计任务书学生姓名:专业班级:指导教师:工作单位:信息工程学院题目: 模可变16位加法计数器设计初始条件:可用仪器: PC机(Quartus II软件)硬件:EDA-IV型实验箱。
要求完成的主要任务:(1)设计任务设计一个模可变16位加法计数器。
(2)设计指导设计可变16位加法计数器,可通过3个选择位M2、M1、M0实现最多8种不同模式的计数方式,例如可构成5、10、16、46、100、128、200、256进制,共8种计数模式。
(3)时间安排:2013.12.23 课程设计任务布置、选题、查阅资料2013.12.24 设计,软件编程、仿真和调试2013.12.29 实验室检查仿真结果,验证设计的可行性和正确性2013.12.30 设计的硬件调试2014.01.05 机房检查设计成果,提交设计说明书及答辩指导教师签名:年月日系主任(或责任教师)签名:年月日目录摘要 (I)Abstract........................................................... I I1 绪论 (1)2 Quartus II简介 (2)3 计数器的工作原理 (3)4 设计原理 (4)4.1 整体设计原理 (4)4.2 单元模块的设计 (5)4.3 顶层模块(整体电子线路系统)的设计 (8)5 电路系统的功能仿真 (10)6 硬件调试 (12)7 个人小结 (14)参考文献 (15)摘要计数器是数字电子技术中应用的最多的时序逻辑电路。
计数器不仅能用于对时钟脉冲计数,还可以用于分频、定时、产生节拍脉冲和脉冲序列以及进行数字运算等。
但是并无法显示计算结果,一般都是要通过外接LCD 或LED屏才能显示。
计数器的种类按照计数器中的触发器是否同时翻转分类,可将计数器分为同步计数器和异步计数器两种,如果按照计数过程中数字增减分类,又可将计数器分为加法计数器、减法计数器和可逆计数器,随时钟信号不断增加的为加法计数器,不断减少的为减法计数器,可增可减的叫做可逆计数器,另外还有很多种分类不一一列举,但是最常用的是第一种分类,因为这种分类可以使人一目了然,知道这个计数器到底是什么触发方式,以便于设计者进行电路的设计。
目录1加法计数器 (2)1.1题目内容 (2)1.2状态图 (2)1.3选择触发器,求时钟方程,输出方程和状态方程 (2)1.4求驱动方程 (5)1.5画逻辑电路图 (6)2序列脉冲发生器 (7)2.1题目内容 (7)2.2状态图 (7)2.3选择触发器,求时钟方程,输出方程和状态方程 (8)2.4求驱动方程 (9)2.5画逻辑电路图 (10)3总结 (11)4参考文献 (11)1 加法计数器1.1题目内容设计一个十六进制同步加法计数器,具有清零和置位功能1.2状态图根据二进制递增计数的规律,可画出如图1所示的十六进制加法讣数器的状态图。
/ 0 / 0 / 0 / 0 / 0 / 0 /oOOOO«^OOO1^^OO1O«^OO11^^O1OO^^O1O1—^0110^^0111/o / 0111" 1110・ 110" 1100・ 1011・1010・ 100" 1000/ 0 / 0 / 0 / 0 / 0 / 0 / 0 /c排列:CF Q: Q: Qo图1十六进制同步加法计数器的状态图1.3 选择触发器,求时钟方程,输出方程和状态方程选择触发器山于JK触发器功能齐全,使用灵活,故选用4个时钟下降沿触发的边沿JK触发器。
求时钟方程III于要求构成的是同步计数器,显然各个触发器的时钟信号都应使用输入计数脉冲CP,即CPo=CPi=CP2=CP3=CP求输出方程山图1所示状态图可直接得到C二Q? Q: QiQo求状态方程根据图1所示状态图的规定,可画出如图2所示的计数器次态卡诺图。
\ Q-Qo Q3Q2 \ 00 01 11 100001001001000011010101101000011111011110000011111001101011001011图2十六进制同步加法计数器次态的卡诺图把图2所示卡诺图分解开,便可得到如图3所示各个触发器次态的卡诺图。
模可变16位加法计数器1、设计要求:模可变16位计数器,可以构成五进制、十进制、十六进制、四十六进制、一百进制、一百二十八进制、二百进制和二百五十六进制共8种计数模式(这些模式通过3个选择为M2、M1、M0实现)。
2、设计思路:在每个时钟的上升沿检测,当计数到达进制上限时,将计数值清零。
对应不同的模,将计数器进制上限根据M值变化,即可达到可变模的目的。
3、VHDL程序及注释LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_unsigned.all;ENTITY VHDL1ISPORT(CLK:IN std_logic;M:IN std_logic_vector(2DOWNTO0);Q:BUFFER std_logic_vector(15DOWNTO0));END VHDL1;//与示例程序不同,取名为VHDL1ARCHITECTURE behav OF VHDL1ISBEGINPROCESS(CLK,M)BEGINIF CLK'EVENT AND CLK='1'THENIF M=0THENIF Q<4THEN、//与示例程序不同,Q<5处理则会导致一个时钟周期内出现5这一计数值,即使进制变为6进制,故修改之。
下同。
Q<=Q+1;ELSEQ<="0000000000000000";END IF;ELSIF M=1THENIF Q<9THENQ<=Q+1;ELSEQ<="0000000000000000";END IF;ELSIF M=2THENIF Q<15THENQ<=Q+1;ELSEQ<="0000000000000000";END IF;ELSIF M=3THENIF Q<45THENQ<=Q+1;ELSEQ<="0000000000000000";END IF;ELSIF M=4THENIF Q<99THENQ<=Q+1;ELSEQ<="0000000000000000";END IF;ELSIF M=5THENIF Q<127THENQ<=Q+1;ELSEQ<="0000000000000000";END IF;ELSIF M=6THENIF Q<199THENQ<=Q+1;ELSEQ<="0000000000000000";END IF;ELSIF M=7THENIF Q<255THENQ<=Q+1;ELSEQ<="0000000000000000";END IF;ELSEQ<="0000000000000000";END IF;END IF;END PROCESS;END behav;4、实验仿真电路5、实验波形仿真结果取时钟周期CLK=2us,得到如下结果:5进制时:10进制时:16进制时:由于更高进制条件下,计数次数过多,仿真速度慢,结果密集难以分辨,故不再列出。
16位加法器电路设计
加法器电路是计算机中常见的数字电路,用于将两个二进制数相加并得出和。
16位加法器电路设计是指设计一个能处理16位二进制数相加的电路。
在设计16位加法器电路时,需要考虑以下几个关键方面:
1. 选择合适的器件:需要选择适合的逻辑门和触发器等数字电路器件。
常用的器件包括AND门、OR门、XOR门、全加器等。
2. 划分模块:将16位加法器电路划分为若干个小模块,简化设计过程。
常见的模块包括单位加法器和级联器。
3. 单位加法器设计:单位加法器是实现加法运算的基本单元。
在16位加法器电路中,每一位均由一个单位加法器完成。
单位加法器由两个输入(被加数位和加数位)和两个输出(和位和进位位)组成。
4. 级联器设计:级联器用于连接多个单位加法器,将进位位从低位传递到高位。
在16位加法器电路中,需要将每一位的进位位和前一位的进位位相连。
5. 测试和验证:设计完成后,需要进行测试和验证,确保16位加法器电路的正确性和性能。
通过以上步骤设计完成的16位加法器电路能够实现对16位二进制数的相加操作。
在实际应用中,可以将多个16位加法器电路级联以实现更大位数的加法运算。
设计一个高效可靠的16位加法器电路是数字电路设计的重要任务之一,对于计算机的性能和功能具有重要影响。
通过仔细考虑各个方面的设计和实施,可以实现一个满足要求的16位加法器电路。
1、掌握16位二进制加减可控计数器的设计思想,完成设计;2、熟悉QuartusⅡ对程序进行编译、调试和仿真的过程;3、掌握VHDL语言的表达;4、该计数器含有异步清零和计数使能功能。
二、实验内容和原理1、实验内容:根据实验要求,在QuartusⅡ中从所要实现的功能出发编写实验代码,并进行编译、调试和仿真。
2、实验原理:用IF语句将加、减法计数器连接起来;以MODE作为控制信号,选择进行加法或减法运算;以RST作为异步清零信号,当RST为‘1’时将对计数器清零,即复位,这项操作是独立于CLK的,称异步;以EN作为始能信号,只有EN=1且RST无效(即RST=0),若此时有CLK信号,计数器才工作。
三、实验环境QuartusⅡ软件四、操作方法与实验步骤1、分析二进制加法、减法计数器工作原理,由此设计控制信号,使计数器可控;2、在QuartusⅡ中建立计数器工程,进行程序编写、调试、编译、仿真;3、对实验所得的时序图形进行分析。
五、实验数据记录和处理将程序进行仿真得到的波形图如下所示六、实验结果与分析:从仿真的时序图上可以看出,MODE的电平决定加操作还是减操作;RST为高电平有效,立即的将CQ置零;只有在EN为高电平且RST为低电平的情况下,CQ随着时钟上升沿的到来计数。
七、实验心得与体会通过该实验,我初步掌握了VHDL语言的基本使用方法,熟悉了QuartⅡ软件的操作流程。
八、程序代码LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY add16 ISPORT(CLK,RST,EN:IN STD_LOGIC;CQ:OUT STD_LOGIC_VECTOR(15 DOWNTO 0);COUT:OUT STD_LOGIC;MODE:IN STD_LOGIC);END add16;ARCHITECTURE behav OF add16 ISBEGINPROCESS(CLK,RST,EN)VARIABLE CQ_IN:STD_LOGIC_VECTOR(15 DOWNTO 0);BEGINIF RST='1' THENCQ_IN:=(OTHERS=>'0');ELSIF CLK'EVENT AND CLK='1' THENIF EN='1' THENIF MODE='1' THENIF CQ_IN<65535 THENCQ_IN:=CQ_IN+1;COUT<='0';ELSE CQ_IN:=(OTHERS=>'0'); COUT<='1';END IF;ELSIF MODE='0' THENIF CQ_IN>0 THENCQ_IN:=CQ_IN-1;COUT<='0';ELSECQ_IN:=(OTHERS=>'1');COUT<='1';END IF;END IF;END IF;END IF;CQ<=CQ_IN;END PROCESS; END behav;。
本科生实验报告十六进制加减计数器电路实验专业名称:课程名称:数据逻辑与EDA指导教师:学生学号:学生姓名:二○一九年十一月1、实验目的1.1了解时序逻辑电路的基本功能1.2掌握时序逻辑电路的设计方法1.3熟悉时序逻辑电路的工作过程2、实验原理2.1定义:在逻辑电路中,任何时刻的稳定输出不仅取决于该时刻的输入,且与过去的输入相关。
2.2类型:边沿触发器、电平触发器、加法计数器、减法计数器、可逆计数器、序列检测器、采样控制器等。
3、实验设备:3.1 PC机3.2 教学实验箱3.3 通信线4、实验内容:4.1任务:设计一个两位16进制加减可逆的计数器,具有内部脉冲和手动计数功能,结果在7段数码管上显示。
4.2接线:(1)用插线连接插孔24,32,25到实验台的1HZ,10HZ和100HZ上,作为CLK1HZ,CLK10HZ,CLK100kHZ,三个频率的输入端;(2)用插线将实验台上的6个数码管的七段码a-h连接到插孔40,41,42,43,44,45,47,48上,作为七段码输出端;(3)七段数码管的位码S(0)-S(5)接到实验台的插孔51,52,53,55,57,58上,作为七段码位码输出端;(4)实验台上的开关K0接到插孔26上,作为en的输入开关。
en=1时手动,en=0时为自动;(5)手动脉冲按键din接单脉冲,然后接在28脚上输入;(6)复位键rst接K1开关连接在27脚输入;(7)加减控制键rev接K2开关连接在31脚输入4.3硬件描述语言源代码:module cnt(clk100khz,clk1hz,clk10hz,rst,en,din,scan,dout,rev);input rst;//复位键input rev;//加减控制器input en;//手动或自动计数开关input din;//手动计数脉冲input clk100khz,clk1hz,clk10hz;//分别为数码管刷新,自动计数,手动计数频率output[7:0]dout;//数码管七段码output[5:0]scan;//数码管位码reg[7:0]dout;reg[5:0]scan;reg f1,f2,c;//数码管个位和十位敏感信号;c为手动计数参数reg[2:0]cnt;//数码管扫描参数reg[3:0]dat;//数码管位码扫描参数reg[3:0]data1,data2;//个位和十位计数参数always@(posedge clk10hz) //设置自动计数和手动计数begin if(!din) c<=1; //din为1时,c=0;din为0时,c=1。
《通信工程专业电子技术》课程设计报告专业:通信工程班级:0802 班姓名:彭孟秋指导教师:黄彩云二零一零年六月二十五日目录1、目的及组员 (2)2、课程的任务与要求 (2)3、课程设计题目及步骤 (3)4、元器件清单 (12)5、课程设计心得 (13)参考书目 (15)附程序代码 (16)一、目的及组员根据所学模拟电子技术、数字系统与逻辑设计的理论,对模拟电子线路、数字电子线路以及模拟与数字综合电子线路进行设计、安装与调试。
通过电子技术课程设计的综合训练,培养学生独立思考、分析问题、解决问题的能力,培养工程实践能力、创新能力和综合设计能力。
组长:宋钰组员:彭孟秋、陈言、潘文斌、杨昌赋二、课程的任务与要求1.任务课程设计的任务是让学生设计、组装并调试一个简单的电子电路装置。
需要学生综合运用“电子技术”课程的知识,通过调查研究、查阅资料、方案论证与选定;设计和选取电路及元器件;组装和调试电路,测试指标及分析讨论,完成设计任务。
课程设计不能停留在理论设计和书面答案上,需要运用实验检测手段,使理论设计逐步完善,做出达到指标要求的实际电路。
通过这种综合训练,学生可以掌握电路设计的基本方法,提高动手组织实验的基本技能,培养分析解决电路问题的实际本领。
2.要求从课程设计的任务出发,应当通过设计工作的各个环节,达到以下教学要求: (1)巩固和加深学生对电子电路基本知识的理解,提高他们综合运用本课程所学知识的能力。
(2)培养学生根据课题需要选学参考书籍,查阅手册、图表和文献资料的自学能力。
通过独立思考,深入钻研有关问题,学会自己分析并解决问题的方法。
(3)通过电路方案的分析、论证和比较,设计计算和选取元器件,电路组装、调试和检测等环节,初步掌握简单实用电路的分析方法和工程设计方法。
(4)掌握常用的仪器、设备的正确使用方法,学会简单电路的实验调试和整机指标的测试方法,提高学生的动手能力和从事电子电路实验的基本技能。
试验一:16进制加减计数器——07电子 马路 0736065一: 实验程序。
实验要求:用VHDL 语言设计一个16进制加减计数器,计数方向可以由外界输入信号控制,带有清零和置位,输出除了包括计数值外还应包括进位和借位。
实验程序:程序说明:clk :为时钟信号。
cr :为清零信号。
set :为置位信号。
s :为加减计数的方向控制信号。
cin :为置位输入信号,定义为4位的总线形式。
Co :为进位信号。
bo :为借位信号。
q :为输出信号。
功能说明:在进程p1中:当有清零信号cr ,即cr=1时,计数器清零。
当有置位信号时,将置入的数赋给信号po 。
当有时钟的下降沿来时,并且加减方向控制信号s 为0时,计数器做加法运算(如果一开机就是4位输出全高,则当时钟来LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT16 ISPORT(clk,cr,set,s:IN std_logic;cin:INstd_logic_vector(3 DOWNTO 0);q:OUTstd_logic_vector(3 DOWNTO 0);co,bo:OUT std_logic);END;ARCHITECTURE w2 OF CNT16 ISSIGNAL po:std_logic_vector(3 DOWNTO0);BEGINp1:PROCESS(clk,cr,set,cin)BEGINIF cr='1' THEN po<="0000";elsif set='1' then po<=cin;ELSE IF clk 'EVENT AND clk='0' THENIF s='0' THENIF po=15 THEN po<="0000"; ELSE po<=po+1; END IF; ELSE IF po=0 THEN po<="1111"; ELSE po<=po-1; END IF; END IF; END IF; END IF; END PROCESS; p2:PROCESS(s) BEGIN IF s='0' THEN co<=po(3)AND po(2) AND po(1) AND po(0); ELSE co<='0'; bo<=NOT po(3) AND NOT po(2) AND NOT po(1) AND NOT po(0); END IF; q<=po; END PROCESS; END;时,计数器从零开始计数);当s为1时,做减法运算(当计数器初值为0,则时钟沿之前先向bo借一位,然后在时钟沿之后开始做减法运算)。
16进制计数器的电路设计及版图实现摘要集成电路设计技术是现在信息时代的关键技术之一,当今的超大规模集成电路(VLSL)设计也已经离不开计算机辅助(CAD)。
Tanner就是CAD软件的一种,它是由Tanner Research公司开发的基于windows平台的用于集成电路设计的工具软件,该软件功能强大,从电路设计、分析模拟到电路布局都可实现。
本设计就是基于tanner软件实现十六进制计数器的电路图设计及版图绘制.根据电路的逻辑功能可知,十六进制计数即从0000一直计数到1111,这里我选用通过四片D触发器级联实现,每输入一个CP脉冲,D触发器就翻转一次,如果触发器初始状态为0,在输入第一CP脉冲的时候,第一级触发器置1,后面几级触发器还保持在0状态,得到0001;在第二个CP脉冲上升沿时,触发器触发,第二级触发器置1,其他的触发器置0,得到0010,依次类推,从而完成0000~1111 十六位计数.本设计正是利用tanner做出D触发器子模块并级联成完整电路,然后绘制版图并仿真,验证结果与预期相同.关键词:CAD;TANNER;D触发器;16进制计数器Circuit Design and Layout Implementation ofHexadecimal CounterAbstractIC design technology is now one of the key technologies of the information age, today’s ultra-large scale integrated circuit (VLSL) has been inseparable from computer-aided design (CAD)。
Tanner is a CAD software, which is developed by the Tanner Research windows-based platform for integrated circuit design tool software, which is powerful,the circuit design, analysis,simulation of the circuit layout can be realized. This design is based on the software tanner to implement hexadecimal counter circuit design and layout drawing。
顶层为原理图的能显示16进制减法计数器设计【实验内容】1、用V erilog设计一个二选一电路,并用ModelSim Simulator 仿真验证。
要求该二选一电路能实现16进制数的两位数据串行输出(或称动态输出)。
(在图6-1中为KZ模块,其中Q(3:0)为数据输出信号,D(2:0)为输出位选通信号)。
2、用V erilog设计一个16进制减法器,并用ModelSim Simulator 仿真验证。
3、用V erilog设计一个共阴极7段译码电路,并用ModelSim Simulator 仿真验证。
4、设计一个能显示15到0减法计数器顶层为原理图电路。
用ModelSim Simulator 仿真验证。
5、设计一个能将一个输入总线数值为0000到1111的分成输出为个、十位的二个总线信号(个位为0000到1001,十位为0000到0001)。
6、学习根据硬件实验装置外围电路与可编程器件引脚连接关系的附录表1 (或所选硬件实验装置的芯片与外围电路连接附录表)定义芯片的I/O管脚,并将所设计16进制减法计数器下载到可编程器件芯片中去,通过硬件实验装置验证设计结果。
7、掌握数据并行输入并行输出,串行输入并行输出及并行输入串行输出的设计电路。
本设计中控制电路为数据并行输入串行输出。
【实验步骤】新建一个项目名TEST_6,顶层为原理图,原理图名为XSQ,可编程芯片选SPARTAN3系列中XC3S50-TQ144(或根据所选硬件装置上的芯片系列型号)。
1)分别用V erilog设计下层各模块:(1)二选一扫描电路(KZ);(2)共阴极7段译码电路(decode);(3)16进制减法计数器(jsq_16);(4)将十六进制分成十进制的高低位(个、十位)(gdf);(5)根据所给时钟频率设计记数分频器和扫描分频器(硬件验证实验装置的输入时钟频率为10MHZ,也可查附录表1获得)。
其中16进制减法计数器(jsq_16)可通过Project Navigator界面中菜单Project♑Add Source从实验四中将练习时已生成的16进制减法计数器V erilog加入(调入)。
实验一
一、实验目的
1、学会使用LPM参数化模块库进行系统设计。
2、学会器件选择及器件的引脚分配
3、了解所选器件的逻辑单元结构
二、实验内容
1、用LPM参数模块化设计方法设计一个16位的加减可控计数器
2、选择合适器件,并进行引脚分配
3、查看器件内部资源使用情况,并对引脚重新进行合理分配
三、实验步骤
1、打开QuartusII,新建一个工程addsub16
3、打开symbol tool,选择megafunctions/arichmetic下的lpm_counter,点击OK
4、修改该宏函数输出的形式及存放目录和名称
5、选择器件,输入数据位数和实现的功能
6选择器件的计数使能
7.选择清零端口
8.可加上输入输出端口
9.选择具体器件
10.进行引脚分配(如果引脚自动分配,可直接进行综合编译)
11.查看器件内部逻辑单元使用情况
12.内部资源调整
13.内部资源调整后重新综合
14.功能仿真达到预期结果。
单片机课程设计报告设计题目:简易计算器系统设计专业班级:电信07101班设计者:潘雄文(24)设计者:罗芬(31)设计者:袁雅丽(33)指导教师:王先春老师设计时间: 2009.12.7-2009.12.18简易计算器系统设计一、设计目的1、进一步熟悉和掌握简单计算器的内部结构及工作原理。
2、掌握计算器中单片机的接口技术相关外围芯片的外特性,控制方法。
3、通过课程设计,掌握以简单计算器系统核心的电路设计的基本方法和技术,了解相关电路参数的计算方法。
二、设计要求设计一个可以进行2位数四则运算的计算器,要求:1,用按键输入数和运算符号;2,用LED显示运算过程和结果(十进制数);3,可以表示出当前的运算类型;4,具有清零和复位功能;5,具有连续运算功能。
注:加和改的部分:1、具有开机和关机动画显示功能;2、当按下按键时,能发出声音;3、把用LED显示运算过程和结果改为用液晶显示三、设计方案本设计是一个实现加,减,乘,除的计算器,AT89C51的P3口用于键盘输入,接4*4矩阵键盘,P2口用于控制液晶显示,P0口用于数据输入,用一个排阻RP1作为P0口的上拉电阻它可以实现8位正负数的加、减、乘、除运算。
四、硬件电路设计电路原理图AT89C51简介:AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FlashProgrammable and Erasable Read Only Memory)的低电压,高性能CMOS 8位微处理器,俗称单片机。
AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
实验五:十六进制加/减可逆计数器设计
一、实验目的
练习时序逻辑电路的Verilog实现。
二、实验要求
实现一个具有加减可逆计数功能的十六进制计数器,用一位控制信号,控制加/减两种计数模式。
三、程序
module jsq(d,clk,clr,load,qd,qout);
input clk,clr,load,qd;
input [3:0] d;
output [3:0] qout;
reg [3:0] cnt;
assign qout=cnt;
always@(posedge clk)
begin
if(!clr)
cnt<=4'b0000;
else if(load)
cnt<=d;
else if(qd)
cnt<=cnt+1;
else
cnt<=cnt-1;
end
endmodule
四、仿真结果
五、实验总结
在实验的开始,不知道怎么编写十六进制加/减可逆计数器,只记得
老师上课讨论过十六进制加计数器,而书上也只有三十二进制加/减可逆计数器,将三十二进制的看懂之后,将原程序改成十六进制的加/减可逆计数器,得到波形图之后对于波形时间设置却有了问题。
问了同学之后,才知道我之前的load和clr的设置有问题。
根据程序clr是低电平有效,而load是高电平有效。
经过更改之后输出成功。
通过本次试验,我了解了自己对计数器的学习还不是很深入,以至于我的这次实验做得不是很顺利。
所以之后的学习我要做好预习工作。