实验二 模可变计数器(DOC)
二位二进制计数器(DOC)

课程设计任务书学生姓名杜佳专业班级计算机zy1202班指导教师袁晓玲学院名称计算机科学与技术学院一、题目:二位二进制计数器。
外部输入X=1时,计数器加1计数,外部输入X=0时,计数器保持不变。
原始条件:使用D触发器( 74 LS 74 )、“与”门( 74 LS 08 )、“或”门( 74 LS32 )、非门( 74 LS 04 ),设计二位二进制计数器。
二、要求完成设计的主要任务如下:1.能够运用数字逻辑的理论和方法,把时序逻辑电路设计和组合逻辑电路设计相结合,设计一个有实际应用的数字逻辑电路。
2.使用同步时序逻辑电路的设计方法,设计二位二进制计数器。
写出设计中的三个过程。
画出课程设计图。
3.根据74 LS 74、74 LS 08、74 LS 32、74 LS 04集成电路引脚号,在设计好的二位二进制计数器电路图中标上引脚号。
4.在试验设备上,使用74 LS 74、74 LS 08、74 LS 32、74 LS 04集成电路连接、调试和测试二位二进制计数器电路。
5.设计报告书包括:设计内容与设计要求、设计原理和过程、调试分析、心得体会、参考文献。
三、课程设计进度安排指导教师签名:年月日系主任(责任教师)签名:年月日一、实验目的:1、深入了解和掌握同步时序逻辑电路的设计过程;2、了解74LS74、74LS08、74LS32、74LS86及74LS04芯片的功能;3、能够根据电路图连接好实物图,并实现其功能。
学会设计过程中的检验与完善。
二、题目理解和功能描述:用数字逻辑实验板和若干集成芯片实现如下功能:利用逻辑电平区域中八盏灯的任三盏作为实验的输入和输出,其中以1盏灯(如K1)作为输入x,用以改变输入的0、1特性,对应两位二进制数的四个状态,二位二进制计数器逻辑结构如图一所示。
计数器输出y 2 y 1输入x时钟输入图1 两位二进制数逻辑结构当输入x 为1时对应的输出序列:此时实验板上输出灯的亮暗变化如下:题目:二位二进制计数器。
模可变计数器设计(Verilog语言)解答

模可变计数器设计(一)实验目的1、进一步熟悉实验装置和Quartus n软件的使用;2、进一步熟悉和掌握EDA 设计流程;3 、学习简单组合、时序电路的EDA 设计;4、学习计数器中二进制码到BCD 码的转换技巧;5、学习实验装置上数码管的输出方法。
(二)设计要求完成设计、仿真、调试、下载、硬件测试等环节,在EDA 实验装置上实现模可变计数器功能,具体要求如下:1 、设置一个按键控制改变模值,按键按下时模为10-99 之间(具体数值自行确定)的数,没按下时模为100-199 之间(具体数值自行确定)的数;2、计数结果用三位数码管十进制显示。
(三) 主要仪器设备3、微机 1 台4、QuartusII 集成开发软件 1 套5、EDA 实验装置 1 套(四) 实验步骤主要有三个模块1:一个模20 和模119 的计数器2:数码管的显示3:BCD 的调整源程序:module count (clk,m,en,rst,a,sel,SG,d);input clk,m,en,rst;output [7:0] SG;output [2:0] sel;output a;(* synthesis, keep *) reg clk1;(* synthesis, keep *) wire [3:0] gw,sw,bw;/*(* synthesis, keep *) */reg [3:0]a;reg [11:0] q;reg [11:0] model;reg [7:0] cnt,SG;reg [2:0] sel;reg [0:0]d;output [0:0]d;always @(posedge clk) begin cnt=cnt+1;if (cnt==200) begin clk1=1'b1; cnt=0; endelse clk1=1'b0; //200 分频,CLK 为数码管扫描频率,CLK1 为计数频率if (sel<2) sel=sel+1; else sel=0; end //sel 为数码管选择always @(sel) begincase (sel)0: a=bw; //0 数码管为百位1: a=sw; //1 数码管为十位2: a=gw; //2 数码管为个位default: a=0;endcasecase (a)0:SG<=8'b00111111; 1:SG<=8'b00000110;2:SG<=8'b01011011; 3:SG<=8'b01001111;4:SG<=8'b01100110; 5:SG<=8'b01101101;6:SG<=8'b01111101; 7:SG<=8'b00000111;8:SG<=8'b01111111; 9:SG<=8'b01101111; //8 段译码值default: SG=8'b11111111;endcase endalways @(m)if (m) model=12'b000000100000; // 模值20else model=12'b000100011001; // 模值119assign gw=q[3:0];assign sw=q[7:4];assign bw=q[11:8];always @(posedge clk1,negedge rst)beginif (!rst) q=0;else if (en)beginif (q<model)beginif (gw==9) begin q=q+7; if (sw==9) q=q+96; end //BCD 调整else q=q+1;endelse q=0;endendalways @(q)if(qvmodel) d<=0; else d<=1; endmodule波形仿真:iimulatioin WaveformsSimulation sode : TillingA.B Master Time Sar19L9 ns ■[POinler: 39.3^1 us Imeival:39.32 us Stan :End:he. 14 us 37.. 42 UH 33. 7 us39.9B LLS4k 26 us54 us 4X B2 usP 1 i111■Clk1是计数频率,每来一个 clk1信号q 计数一次Simula ion Wa^efor™ Sinulatlon lode: Tiling如图所rst=1有效时开始计数 clk 为扫描频率sel=0时数码管显示百位 a=0 sel=1时数码管显示十位 a=1 sel=2时数码管显示个位 a=3 m=1模20计数器 m=0模119计数器管脚分配:* I HI Ik * Jij19.3ns J hRoirter.6fl.H us Interval.68.09 UE Slarl End.lane<>0□ S&elk<>1B clkl曲+ 0-L玮tT IF Len^1.nCH- 1±1 sei尬1.田Q B i辭El 勿u 3.dM68.14 us63.16 us ■6E. 18 usI63.22 us 68. 24 usW [1] X [3]连[01 X [1] X [3]迪[0] X [1] X [3] ® [o] X [1] X [3]址[0] II :MasierTiiTiB Bar.68.12 usIIISG[0] SG[1] SG[2] SG[3] SG[4] SG[5] SG[6] SG[7] clkPIN_F13PIN_F14PIN_F15PIN_E15PIN_F16PIN_F17PIN_E18PIN_F18 PIN_C13en PIN_H8m rst sel[0] sel[1] sel[2] d[0] PIN_J9PIN_C5PIN_G18PIN_G17PIN_G16 PIN_G13(五)实验心得本实验主要是三大模块的编写,第一次的实验在老师给的参考代码下进行的,不过错误依然很多,主要有几个重点药掌握,一是首先要编写出能够计数的模块,用m 来控制模值的变化m=1 时模值为20 m=0 时模值为119;二是计数模块都是二进制计数的,而要在数码管上显示计数的话就必须进行BCD 调整,并且q 是一个是十二位的寄存器,通过把gw=q[3:0]; sw=q[7:4]; bw=q[11:8] 赋值的方法;一个个的显示在数码管上,由于clk 的频率比较快,所以可以看到三位数码管显示的值,我觉得管脚分配也是比较关键的!一开始我就把个位和百位显示的值搞反了序列信号发生和检测器设计(一)实验目的1、进一步熟悉EDA实验装置和Quartus n软件的使用方法;2 、学习有限状态机法进行数字系统设计;3、学习使用原理图输入法进行设计。
实验二:模可变计数器

南昌大学实验报告学生姓名:刘志强学号:6100409222 专业班级:电子091班实验类型:验证□综合□设计■创新□实验日期:实验成绩:实验二模可变计数器设计(模23/模109)一、设计思路/原理图数字电路以前学过模值计数器的设计,而这个实验只是在原类型题加了一个模值转换的设置,再加上要求用数码管显示,所以必须把计数结果转换成BCD码,所以干脆直接使用BCD码进行模值控制。
二、实验程序(程序来源:网络)library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt109 isport(clk,rst,en,M:in std_logic;cq,cqq,cqqq: out std_logic_vector (3 downto 0)) ;end cnt109;architecture behav of cnt109 isbeginprocess(clk,rst,en,M)variable cq1:std_logic_vector (11 downto 0);variable Z:std_logic_vector (11 downto 0);begincase M iswhen '0' => Z:="000000100010";when '1' => Z:="000100001000";end case;if rst='1' then cq1:=(others=>'0');elsif clk'event and clk='1' thenif en='1' thenif cq1<Z thenif cq1(7 downto 0) =153 then cq1:=cq1+103;elsif cq1(3 downto 0)=9 then cq1:=cq1+7;else cq1:=cq1+1;end if;else cq1 :=( others =>'0') ;end if;end if;end if;cq<=cq1( 3 downto 0);cqq<=cq1 ( 7 downto 4 ) ;cqqq<=cq1 ( 11 downto 8);end process;end behav转化成可调用的元:;、七段动态译码程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DECL7S ISPORT(D:IN STD_LOGIC_VECTOR(3 DOWNTO 0);LED7S:OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END DECL7S;ARCHITECTURE one OF DECL7S ISBEGINPROCESS(D)BEGINCASE D ISWHEN "0000"=>LED7S<="00111111";WHEN "0001"=>LED7S<="00000110";WHEN "0010"=>LED7S<="01011011";WHEN "0011"=>LED7S<="01001111";WHEN "0100"=>LED7S<="01100110";WHEN "0101"=>LED7S<="01101101";WHEN "0110"=>LED7S<="01111101";WHEN "0111"=>LED7S<="00000111";WHEN "1000"=>LED7S<="01111111";WHEN "1001"=>LED7S<="01101111";WHEN OTHERS=> NULL;END CASE;END PROCESS;END ARCHITECTURE;它的模块图如下:顶层文件:对文件保存并进行编译仿真,在验证仿真正确后进行管脚绑定如下图,然后进行下载测试。
计数器的实验报告

计数器的实验报告计数器的实验报告摘要:本实验旨在通过设计和搭建一个计数器电路,来探究计数器的工作原理以及应用。
通过实验,我们可以了解计数器的基本结构和工作原理,并通过实验结果验证其性能。
引言:计数器是一种常见的数字电路,在现代电子设备中得到广泛应用。
它可以用于计数、计时、频率分频等多种应用场景。
本实验将通过搭建一个简单的二进制计数器电路,来深入了解计数器的原理和功能。
实验步骤:1. 准备实验所需材料和设备,包括集成电路、电路板、电源等。
2. 根据实验要求,设计并搭建计数器电路。
3. 连接电源,确保电路正常工作。
4. 进行实验测试,记录实验数据。
5. 分析实验结果,并进行讨论。
实验结果与分析:在实验中,我们成功搭建了一个4位二进制计数器电路。
通过给电路输入一个脉冲信号,我们观察到计数器按照二进制的方式进行计数。
当计数器达到最大值时,会自动归零,重新开始计数。
通过实验数据的记录和分析,我们发现计数器的计数速度与输入脉冲信号的频率有关。
当输入脉冲信号的频率较高时,计数器的计数速度也会增加。
而当输入脉冲信号的频率较低时,计数器的计数速度则会减慢。
此外,我们还观察到计数器的计数方式可以通过改变电路连接方式进行调整。
例如,我们可以将计数器设置为递减计数器,或者设置为只在特定条件下计数。
这些功能的实现依赖于电路设计和连接方式的调整。
讨论与总结:通过本次实验,我们深入了解了计数器的原理和功能。
计数器作为一种常见的数字电路,在现代电子设备中发挥着重要作用。
通过掌握计数器的工作原理,我们可以更好地理解和应用数字电路。
然而,本实验只是对计数器的基本原理进行了初步探究。
在实际应用中,计数器的功能和性能还有很多扩展和优化的空间。
例如,可以通过增加位数、设置预置值等方式来改进计数器的性能。
在今后的学习和实践中,我们将进一步深入研究计数器的原理和应用,探索更多的设计和优化方法。
通过不断学习和实践,我们可以提高对计数器的理解和应用能力,为数字电路的设计和应用做出更大的贡献。
计数器实验报告

计数器实验报告实验目的:通过实验了解计数器的原理和工作方式,掌握计数器的使用方法。
实验仪器:计数器、示波器、信号发生器、电压表。
实验原理:计数器是一种能够自动地对输入脉冲进行计数的电子器件。
它主要由时钟脉冲输入、计数寄存器、计数器控制逻辑以及显示器等部分组成。
实验步骤:1. 准备好实验仪器,包括计数器、示波器、信号发生器和电压表。
2. 将信号发生器的输出信号连接到计数器的时钟脉冲输入口。
3. 设置信号发生器的频率为100 Hz,并调整信号幅度为适当值。
4. 将计数器的数字显示设置为0。
5. 打开计数器和示波器电源,并打开示波器,将示波器的探头连接到计数器的输出端口。
6. 调节示波器的水平和垂直位置,以便能够观察到计数器的输出信号。
7. 开始计数,观察并记录计数器的输出信号和显示结果。
8. 改变信号发生器的频率和幅度,再次进行观察和记录。
实验结果:根据我们的实验步骤和操作,我们观察到计数器的输出信号呈现出逐渐增大的趋势,并且显示结果与输出信号一致。
当频率改变时,计数器的输出结果也会相应地改变。
实验分析:通过实验,我们了解了计数器的基本原理和工作方式,并成功地进行了计数器的实验操作。
实验结果表明,计数器能够准确地对输入脉冲进行计数,并将计数结果显示出来。
同时,我们还观察到了信号发生器频率和幅度对计数器结果的影响,这与我们的预期一致。
实验结论:通过本次实验,我们深入了解了计数器的原理和工作方式,掌握了计数器的使用方法。
实验结果表明,计数器能够准确地对输入脉冲进行计数,并将计数结果显示出来。
同时,我们还观察到了信号发生器频率和幅度对计数器结果的影响。
实验二 同步模4可逆计数器

实验二同步模4可逆计数器
实验目的:1.掌握同步时序逻辑电路的设计方法。
2.加深对同步和时序两个概念的理解。
实验条件:
1.操作系统为WINDOWS 2000的计算机一台
2.Multisim 2001电子线路仿真软件一套
实验组件:双D触发器 74LS74 1片,三输入三与非门74LS10 1片,二输入二与非门74LS00 1片,二输入四异或门74LS86 1片
实验内容:
利用D触发器设计一个可逆模4计数器。
附:(选做)
利用JK触发器设计一个可逆模4计数器。
实验要求:
1.看懂光盘中的实验过程,并在Multisim 2001中使用逻辑分析仪验证结果.
2.使用方波发生器5V 1KHZ(器件库—电源—CLOCK SOURCE)提供脉冲,灯泡(器件库—指示器件—LAMP),开关(器件库—BASIC—SWITCH—SPDT)。
3.根据实验内容,列出真值表、逻辑函数式,并在下周三上交实验报告。
附:74LS10引脚图
74LS74的逻辑符号。
模可控计数器的设计

模可控计数器的设计-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN
杭州电子科技大学
实验报告
实验课程名称EDA技术
实验序号3
实验内容模可控计数器的设计班级
姓名张学涌
学号
指导教师黄继业
二○一一年十一月十日
实验目的与要求
实验目的:进一步学习quartus的文本设计,仿真,测试,以及硬件下载测试;
实验名称:模可控计数器的设计
实验原理
可用并行预置的加法器实现;将计数进位与预置数加载输入信号端或计数复位端相接,当计数值溢出时,在下一时钟预置的值加载进计数器,然后计数器再从这个预置数重新计数,从而实现模可控的计数器;
实验内容
模可控计数器的文本编辑如图:
仿真后的波形图为:
由图可以知道,几乎没有毛刺。
这是一个8位的计数器,预置数为F1,当计数到FF的时候,出现溢出,同一时刻LD(keep属性)变成1,。
到下一时刻的时候,计数器加载预置数,即F1,同一时刻PM变成1,然后计数器再从F1 重新计数,直到FF时又重新加载;
仿真后的RTL图为:
资源利用情况:
由图可以看到资源利用得非常少;
总结与体会
通过模可控器的设计,我懂得如何设计计数器的思路和原理,收获很深刻!。
计数器的实验报告

一、实验目的1. 理解计数器的基本原理和工作方式;2. 掌握计数器的使用方法;3. 培养动手实践能力和团队协作精神。
二、实验原理计数器是一种用于计数的电子器件,能够对输入信号进行计数。
计数器的基本原理是利用触发器来实现计数功能。
触发器是一种具有记忆功能的电子器件,可以存储0或1的状态。
通过将触发器级联,可以实现多位计数。
本实验采用一个简单的异步二进制计数器,其工作原理如下:1. 当计数器复位时,所有触发器的状态都为0;2. 当计数器收到一个时钟信号时,最低位的触发器翻转状态;3. 如果最低位的触发器状态为1,则其输出信号将触发下一位触发器翻转状态;4. 依次类推,实现计数器的计数功能。
三、实验器材1. 计数器模块;2. 电源;3. 连接线;4. 逻辑分析仪;5. 示波器。
四、实验步骤1. 连接电路:将计数器模块、电源、连线等按实验电路图连接好;2. 复位计数器:将复位按钮按下,确保计数器处于初始状态;3. 观察计数过程:打开电源,观察计数器输出端的状态变化;4. 记录数据:使用逻辑分析仪或示波器记录计数器输出端的状态变化,并记录数据;5. 分析数据:根据记录的数据,分析计数器的计数过程和结果。
五、实验结果与分析1. 实验结果:计数器模块在接收到时钟信号后,输出端的状态按二进制递增的顺序变化,实现了计数功能;2. 分析:(1)复位功能:通过复位按钮,可以将计数器模块的状态恢复到初始状态,方便进行实验;(2)计数功能:计数器模块能够对输入的时钟信号进行计数,实现计数功能;(3)稳定性:在实验过程中,计数器模块的输出端状态变化稳定,未出现异常现象。
六、实验总结通过本次实验,我们掌握了计数器的基本原理和使用方法。
实验过程中,我们学会了如何连接电路、观察计数过程、记录数据和分析数据。
同时,我们还培养了动手实践能力和团队协作精神。
在今后的学习和工作中,我们将继续努力,不断提高自己的实验技能和团队协作能力。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南昌大学实验报告学生姓名:学号:专业班级:中兴101班实验类型:□验证□综合■设计□创新实验日期:2012、10、18成绩:实验二模可变计数器的设计一、实验目的1.学习计数器的VHDL设计、波形仿真和硬件测试;2.学会自己设计程序;3.学会设计模可变计数器;4.学习多层次设计方法。
二、实验内容与要求1.计设置一位控制模的位M,要求M=0:模23计数;当M=1:模109计数。
2.计数结果用静态数码管显示,一个四位二进制表示0~9中的一个数;3.给出此项设计的仿真波形;4.应用实验装置验证此计数器的功能。
三、实验思路1.按照实验要求,本实验可分为四个模块进程:分频、模23与109计数转换、数码管控制、七段译码。
2.模可变计数器原理:即在原有的模值计数器上加入模值转换功能3.计数器的数码管显示需注意十位和百位的进位即:当个位数的数值为9的下一个脉冲来时转换为,同时向十位进一,转换的算法为:9(1001)+7(0111)=0(0000),并进一位;当数值为99时,用同样的方法转换:153(1001 1001B,数码管显示99)+103(01100111B)=100(0001 0000 0000);4.要求分别实现模23和模109的计数,因此我分别用buffer变量GW、SW 、 BW 代表个位、十位、百位。
还有一个控制模的位M,当M为0时实现模23计数,只用到GW和SW分别为个位和十位计数;当M为1时实现模109计数,用GW 、SW、 BW 分别为个位十位和百位计数。
由于端口不能参与运算,因些在结构体中定义了se10、 sel1、 sel2三个buffer变量,分别用来对应SEL(0)、 SEL(1)、SEL(2);在程序的最后用端口接收信号。
5.进程敏感信号为RST EN M 三个,当RST为低电平,EN为高电平时则计数,否则不计数。
6.位选信号的设置:用整形变量CNT8分别使不同的位选信号对应不同的输入,而得到不同输出。
对应关系:表一位选信号7.模23与模109计数转换思路框图:图一思维框图四.实现方法一:原理图输入法设计(自己独立完成)1. 建立文件夹建立自己的文件夹(目录),如c:\myeda,进入Windows操作系统Quartus II不能识别中文,文件及文件夹名不能用中文。
2. 原理图设计输入打开Quartus II,选菜单File→New,选择“Device Design File->Block Diagram->Schematic File”项。
点击“OK”,在主界面中将打开“Block Editor”窗口。
(1)分频器模块:(实体名为CLKDIV)--时间:2012年9月28号--版本:7.0--功能:分频器(100分频)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CLKDIV IS—定义实体名为CLKDIVPORT(CLK : IN STD_LOGIC;--输入信号为自带时钟CLK_DIV : OUT STD_LOGIC);--输出信号为分频后的时钟信号END CLKDIV;ARCHITECTURE RT1 OF CLKDIV ISSIGNAL DA TA:INTEGER RANGE 0 TO 100;--实现100分频SIGNAL CLK_TEMP:STD_LOGIC;BEGINPROCESS(CLK)BEGINIF RISING_EDGE(CLK) THENIF(DATA=100) THENDATA<=0;CLK_TEMP<=NOT CLK_TEMP;ELSEDATA<=DATA+1;END IF;END IF;CLK_DIV<=CLK_TEMP;END PROCESS;END RT1;(2)计数模块:(实体名为COUNT)--时间:2012年9月28号--版本:7.0--功能:模可变计数器LIBRARY IEEE ;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY count ISPORT (CLK,RST,EN,M : IN STD_LOGIC;--输入变量为CLK、复位信号:RST、使能端信号:EN、--以及模变转换信号:MCQ1,CQ2,CQ3 : OUT STD_LOGIC_VECTOR (3 DOWNTO 0) ;--输出信号为计数的个、十、百位COUT : OUT STD_LOGIC ) ;--count为进位位END ENTITY count;ARCHITECTURE one OF count ISSIGNAL model : INTEGER;BEGINPROCESS (CLK,RST,EN,M,model)V ARIABLE CQI : STD_LOGIC_VECTOR (11 DOWNTO 0) ;BEGINIF M = '0' THEN model <= 34;ELSIF M = '1' THEN model <= 264;ELSE model <= 0;END IF;IF RST = '1' THEN CQI := (OTHERS => '0');ELSIF CLK'EVENT AND CLK = '1' THENIF EN = '1' THENIF CQI < model THENIF CQI(7 DOWNTO 0) = 153 THEN CQI := CQI + 103 ;ELSIF CQI(3 DOWNTO 0) = 9 THEN CQI := CQI + 7 ;ELSE CQI := CQI + 1 ;END IF;ELSE CQI := (OTHERS => '0') ;END IF;END IF;END IF;IF CQI = model THEN COUT <= '1';ELSE COUT <= '0';END IF;CQ1 <= CQI(3 DOWNTO 0);CQ2 <= CQI(7 DOWNTO 4);CQ3 <= CQI(11 DOWNTO 8);END PROCESS;END ARCHITECTURE one;(3)数码管显示模块:(实体名为scan_led)--时间:2012年9月28号--版本:7.0--功能:数码管显示LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY scan_led ISPORT(clk : IN STD_LOGIC;data1,data2,data3: IN STD_LOGIC_VECTOR(3 DOWNTO 0);scan : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);--输出数码管的7位显示choose: OUT STD_LOGIC_VECTOR(2 DOWNTO 0));--数码管位选信号END ENTITY;ARCHITECTURE one OF scan_led ISSIGNAL cout8:STD_LOGIC_VECTOR(2 DOWNTO 0);SIGNAL A :STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINP1:PROCESS(cout8)—数码管动态扫描BEGINCASE cout8 ISWHEN "000" => choose <= "000"; A <= "0000";WHEN "001" => choose <= "001"; A <= "0000";WHEN "010" => choose <= "010"; A <= "0000";WHEN "011" => choose <= "011"; A <= "0000";WHEN "100" => choose <= "100"; A <= "0000";WHEN "101" => choose <= "101"; A <= data3;WHEN "110" => choose <= "110"; A <= data2;WHEN "111" => choose <= "111"; A <= data1;WHEN OTHERS => NULL;END CASE;END PROCESS P1;P2:PROCESS(clk)BEGINIF clk'EVENT AND clk ='1' THEN cout8 <= cout8+1;END IF;END PROCESS P2;P3:PROCESS(A)—数码管译码BEGINCASE A ISWHEN "0000"=> scan <="0111111"; --0WHEN "0001"=> scan <="0000110"; --1WHEN "0010"=> scan <="1011011"; --2WHEN "0011"=> scan <="1001111"; --3WHEN "0100"=> scan <="1100110"; --4WHEN "0101"=> scan <="1101101"; --5WHEN "0110"=> scan <="1111101"; --6WHEN "0111"=> scan <="0000111"; --7WHEN "1000"=> scan <="1111111"; --8WHEN "1001"=> scan <="1101111"; --9WHEN "1010"=> scan <="1110111"; --AWHEN "1011"=> scan <="1111100"; --BWHEN "1100"=> scan <="0111001"; --CWHEN "1101"=> scan <="1011110"; --DWHEN "1110"=> scan <="1111001"; --EWHEN "1111"=> scan <="1110001"; --FWHEN OTHERS=> NULL;END CASE;END PROCESS P3;END;2.包装元件入库。