EDA_出租车计价器终极版2013_第1页
EDA_出租车计价器终极版2013_第2页
EDA_出租车计价器终极版2013_第3页
EDA_出租车计价器终极版2013_第4页
EDA_出租车计价器终极版2013_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、武汉理工大学EDA(电子设计自动化)课程设计课程设计说明书课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位: 题 目: 出租车计价器的设计 初始条件:本设计利用Quartus软件编写VHDL代码,运用EDA实验箱上的FPGA、数码管、LED灯、拨码开关、3/8译码器、系统20MHz时钟等硬件资源,实现简易的出租车计价器的相关功能。要求完成的主要任务: (包括课程设计工作量及技术要求,以及说明书撰写等具体要求)1、课程设计工作量:2周。2、技术要求: 设计一个出租车计价器。要求显示行驶里程、停车时间和计费值。出租车的起步价为3元,当里程行驶到1km后,费用为4元;当里程行驶到1.5km

2、后,费用为5元;,当里程行驶到2km后,费用为6元;当里程行驶到2.5km后,费用为7元;当里程行驶到3km后,费用为8元;此后每公里计费为0.7元。当计费达到20元后,每公里加收50%的车费。停车每达3分钟,增加0.7元。3、查阅至少5篇参考文献。按武汉理工大学课程设计工作规范要求撰写设计报告书。全文用A4纸打印,图纸应符合绘图规范。时间安排:1. 2011 年 1 月 10 日集中,作课设具体实施计划与课程设计报告格式的要求说明。2. 2011 年 1 月 11 日,查阅相关资料,学习电路的工作原理。3. 2011 年 1 月 12 日 至 2011 年 1 月 16 日,方案选择和程序设

3、计设计。4. 2011 年 1 月 17 日 至 2011 年 1 月 20 日,电路调试和设计说明书撰写。5. 2011 年 1 月 21 日上交课程设计成果及报告,同时进行答辩。课设答疑地点:鉴主13楼电子科学与技术实验室。指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日摘 要本文介绍了一种采用单片FPGA芯片进行出租车计费器的设计方法,主要阐述如何使用新兴的EDA器件取代传统的电子设计方法,利用FPGA的可编程性,简洁而又多变的设计方法,缩短了研发周期,同时使出租车计费器体积更小功能更强大。本设计实现了出租车计费器所需的一些基本功能,计费包括起步价、行车里程计费、等待时间

4、计费,同时考虑到出租车行业的一些特殊性,更注重了把一些新的思路加入到设计中。主要包括采用了FPGA芯片,使用VHDL语言进行编程,使其具有了更强的移植性,更加利于产品升级。关键词:VHDL;计费器;Quartus;FPGAAbstractThis paper describes the use of a single chip FPGA for the design of accounting-fee machine, mainly on how to use the emerging EDA electronic devices designed to replace traditional

5、 methods, using the programmable FPGA, concise and changing the design Ways to shorten the development cycle, so that taxi accounting-fee machine in a smaller more powerful. The design and implementation of the taxi accounting-fee machine for some basic functions, including billing starting price, d

6、riving metered, the waiting time billing, taking into account the special nature of some of the taxi industry, to pay more attention to a number of new Ideas into the design. Mainly including the use of the FPGA chip, the use of VHDL programming, so as to make it a stronger transplanted, and more co

7、nducive to product upgrades. Key words: VHDL, accounting-fee machine , Quartus , FPGA目 录摘 要2Abstract3目 录41.绪论52.设计内容及要求62.1.设计的目的及主要任务62.2.设计思想63.设计原理73.1.设计原理及方法73.2.单元模块设计84.代码仿真结果104.1.有限次数脉冲发生模块仿真结果104.2.计数器模块仿真结果114.3.七段数码管模块仿真结果114.4.分频器模块仿真结果125.硬件调试136.心得体会147.参考文献158.附录168.1.程序源代码168.2.综合网络

8、图301. 绪论人类社会已经进入信息化时代,信息社会的发展离不开电子产品的进步。现代电子产品在性能提高、复杂度降低的同时,价格却一直呈下降趋势,而且产品更新换代的步伐也越来越快,实现这种进步的主要原因就是生产制造技术和电子设计技术的发展。前者以微细加工技术为代表,目前已进展到深亚微米阶段,可以在几平方厘米的芯片上集成数万个晶体管;后者的核心就是EDA技术1。没有EDA技术的支持,想要完成超大规模集成电路的设计制造是不可想象的,反过来,生产制造技术的不断进步又必须对EDA技术提出新要求。EDA代表了当今电子设计技术的最新发展方向,它的基本特征是:设计人员按照“自顶向下”的设计方法,对整个系统进行

9、方案设计和功能划分,系统的关键电路用一片或几片专用集成电路(ASIC)实现,然后采用硬件描述语言(VHDL)完成系统行为级设计,最后通过综合器和适配器生成最终的目标器件2。可编程逻辑器件自20世纪70年代以来,经历了PAL、GAL、CPLD、FPGA几个发展阶段,其中CPLD、FPGA属高密度可编程逻辑器件,目前集成度以高达200万门/片,它将掩膜ASIC集成度高的优点和可编程逻辑器件设计生产方便的特点结合在一起,特别适合于样品研制和小批量产品开发,使产品能以最快的速度上市,而当市场扩大时,它可以和容易地转由ASIC实现,因此开发风险也大为降低。CPLD/FPGA器件已成为现代高层次电子设计方

10、法的实现载体3。 VHDL是一种全方位的硬件描述语言,包括系统行为级、寄存器传输级和逻辑门级多个设计层次,支持结构、数据流和行为3种描述形式的混合描述,因此VHDL几乎覆盖了以往各种硬件描述语言的功能,整个自顶向下或自底向上的电路设计过程都可以用VHDL来完成4。另外,VHDL还有以下优点:VHDL的宽范围描述能力使它成为高层次设计的核心,将设计人员的工作重心转移到了系统功能的实现和调试上,只需要花较少的精力用于物理实现;VHDL可以用简洁明确的代码描述来进行复杂控制逻辑的设计,灵活且方便,而且也便于设计结果的交流、保存和重用;VHDL的设计不依赖于特定的器件,方便了工艺的转换。VHDL是一个

11、标准语言,为众多的EDA场上支持,因此移植性好5。2. 设计内容及要求2.1. 设计的目的及主要任务2.1.1. 设计的目的学会在Quartus环境中运用VHDL语言设计方法构建具有一定逻辑功能的模块,并能运用图形设计方法完成顶层原理图的设计。掌握出租车自动计费器的主要功能与在FPGA中的实现方法。2.1.2. 设计任务及主要技术指标 设计一个出租车计价器。要求显示行驶里程、停车时间和计费值:出租车的起步价为3元,当里程行驶到1km后,费用为4元;当里程行驶到1.5km后,费用为5元;,当里程行驶到2km后,费用为6元;当里程行驶到2.5km后,费用为7元;当里程行驶到3km后,费用为8元;此

12、后每公里计费为0.7元/0.5km。停车每到3分钟,增加0.7元。通过开关读入停车信号,在停车时进行计时,显示格式为时分秒XX-XX-XX,每3分钟,计价0.7元;按照轮胎转动1圈为1m计算,计算并显示行驶的里程结果(单位:Km),格式为:“000.0”。能显示乘车费用(单位:元),格式为:“000.0”。 运用Quartus软件中的仿真功能对所设计的出租车自动计费器的各个模块及顶层电路的功能进行仿真分析。 将所设计的整个系统写入FPGA器件中,加上需要的外围电路在实验箱上实现整个系统的硬件搭建。2.2. 设计思想本次设计首先在Quartus环境中对出租车自动计费器的各个部分利用VHDL这一硬

13、件描述语言予以设计,生成模块。主要有:运算控制模块、分频器、显示模块这三大部分组成。由顶层模块协调控制完成设计任务。3. 设计原理3.1. 设计原理及方法运算控制器分频器时钟信号按键控制LED状态显示七段译码器数码管显示计时信号计费信号序列计程信号3/8译码器分频模块控制计数模块显示模块本设计包含运算控制模块、分频器、显示模块这三大部分。图1 出租车自动计费器系统框图运算控制器模块将其他两个进行连接,是本次设计的核心。它包含计程器、计时器、计价器,同时还有读取外部的拨码开关控制信号,提供当前显示信号与显示位选信号,从而周期性交替显示计价/计时信息、等时信息。计程器在非停车状态完成计程功能并产生

14、里程计价信号,计时器在停车状态完成计时功能并产生等时计价信号。计价器是设计的核心与难点,涉及到多种时钟信号,并有多种计费标准。拟使用有限次高速脉冲发生器向一组级联的十进制计数器提供不同费率的计价脉冲,根据里程计价信号、等时计价信号、停车开关状态、当前计费结果等信号,综合考虑,挑选适合次数的计价脉冲,从而实现不同条件的不同计费。计程器、计时器、计价器根据位选信号,输出相应数据的当前选中数字,由顶层模块根据显示数据类型变换信号进行选择,传输给显示模块。实验箱的时钟信号为20MHz方波,由分频器分为10Hz的计时信号(一个周期代表现实中的1s)、10Hz的计程信号(一个周期代表现实中的10m)、50

15、0Hz的数码管扫描信号(扫描频率62.5Hz)、0.2Hz的显示数据类型变换信号(变化周期5s)。显示模块由实验箱上的3/8译码器、五个LED灯构成状态的指示灯、程序编写的一个七段数码管译码器(因显示需要,原有字形“E”征用改为“”,字形F改为“ ”)组成。本次设计首先在Quartus环境中对出租车自动计费器的各个部分利用VHDL这一硬件描述语言予以设计,进行仿真,然后编写顶层模块将各个模块连接,并对相互之间的信号进行必要处理,从而实现整机功能,最后在实验箱上进行物理测试,寻找漏洞、调整参数,最终确定设计。3.2. 单元模块设计3.2.1. 分频器TAXI_FP模块设计本设计中分频器模块使用了

16、一个通用的分频器元件例化fp。该模块从外部读入系统时钟方波信号clk,向外输出计时信号clk_time,计程信号clk_mil,数码管扫描信号clk_scan,显示数据类型变换信号clk_v。具体程序代码详见附录。3.2.2. 计程器MIL模块设计计程器的核心为一个4位十进制数计数单元cnt10,它由四个十进制计数器级联构成。在得到停车信号时,计程信号不输入计数单元,在没有停车信号stop时,每有10个脉冲clk(100m)才进行计数1次。每当成功计数5次,即500m,产生一个里程计费信号p_mil。在得到复位信号rst时,计程器内部所有计数器和计数信号清零复位,里程计费信号输出0。根据读入的

17、位选信号wx决定当前输出的数值datain。具体程序代码详见附录。3.2.3. 计时器TIM模块设计计时器有一个24进制cnt24、两个60进制的计数器cnt60级联构成计时单元。当停车信号stop为1,进行计时。计时器中还有一个3进制计数器cnt3,每当代表分钟的60进制计数器计数3次,产生一个等时计费信号p_up。当有复位信号rst时,所有计数单元清零,等时计数信号输出0。根据读入的位选信号wx决定当前输出的数值datain。具体程序代码详见附录。3.2.4. 计价器PRICE模块设计因为在计费过程中存在1.05元的计费情况,故计价精度精确到分,共有五个计数器。因此计价器的计数单元有四个1

18、0进制计数器cnt10,一个10进制计数器cnt10_d。前者复位值为0;后者复位值为3,为价格的第三位计数。它的内部还有一个指定个数脉冲产生器price_s。根据停车信号stop的选择里程计费信号p_mil或p_t,当计费信号为1时,输入适当个脉冲,当计费信号为0,脉冲发生器price_s复位。当计费开关switch或复位信号rst为1,计价器所有模块复位。根据读入的位选信号wx决定当前输出的数值datain。具体程序代码详见附录。3.2.5. 显示模块设计显示模块包含一个8进制计数器cnt8,七段数码管译码器decl7s,实验箱上的3/8译码器。还有五个状态显示灯,分别为停车状态指示sto

19、p_s,计费状态指示switch_s,3个当前显示内容标志灯sta(2.0)。当系统复位时,数码管一起显示相同的任意数,五个状态显示灯一起被点亮。正常显示时,等时信息与计价/计程信号以5s为周期交替显示。具体程序代码详见附录。3.2.6. 运算控制模块TAXI设计运算控制模块将以上各模块进行连接,综合,构成出租车计价器。其输入端有系统时钟输入端clk、系统复位信号输入端rst、停车信号输入端stop、计费开关switch。输出端有数码管字形输入端segout、point、位选信号输出端wx、状态灯控制端stop_s、switch_s、sta。具体程序代码详见附录。4. 代码仿真结果上文中提到的

20、六个模块中还运用了一些更小的例化模块。这些小模块被上面的设计多次调用,它们虽然小,功能简单、单一,但是它们功能的正确是调用模块乃至整个设计功能的保证,它们是整个设计的基石,因此在此着重对小模块的逻辑功能与仿真结果进行了说明。仿真结果分为功能仿真与逻辑仿真两幅图进行呈现。我们会发现时序仿真与功能仿真的波形有差异,这是因为在实际门电路的运行中,电平的处理过程造成了信号的延时。4.1. 有限次数脉冲发生模块仿真结果该模块的任务是当使能信号rst为1时产生规定个方波信号,之后输出结果为0。此处产生两个脉冲。图2.有限次数脉冲发生模块功能仿真图图3.有限次数脉冲发生模块时序仿真图4.2. 计数器模块仿真

21、结果该模块的任务是当输入脉冲时,进行计数,当有复位信号时,计数器复位。当计数器计满后,产生进位信号。此处设定计数器的模制为10,复位初始值为0.图4.计数器模块功能仿真图图5计数器模块时序仿真图4.3. 七段数码管模块仿真结果该模块的任务是根据输入的十六进制信号,输出数码管显示其字形的电平信号。图6.七段数码管模块功能仿真图图7.七段数码管模块时序仿真图4.4. 分频器模块仿真结果该模块的任务是将输入的时钟信号,进行偶数次分频,此处选为4分频进行仿真。图8.分频器模块功能仿真图图9.分频器模块时序仿真图5. 硬件调试在完成程序综合后,进行硬件调试之前,先要对芯片进行定义。具体操作如下:首先点击

22、AssignmentsDevice,选择实验箱所用芯片型号EP1C3T144C8。点选Device and Pin Options。在这里选择Unused Pins选项卡,将Reserve all unused pins选为As input tri-stated。然后开始进行管脚设定,根据实验箱的资源配置设置如下:Pin NameLocationI/O StandardPin NameLocationI/O StandardClk16InputSegout397OutputRst49InputSegout498OutputSwitch50InputSegout599OutputStop51In

23、putSegout6100OutputWx283OutputPoint103OutputWx184OutputSta2107OutputWx085OutputSta1108OutputSegout091OutputSta0109OutputSegout194OutputStop_s110OutputSegout296OutputSwitch_s111Output表1.芯片管脚分配表再次进行综合,正确后就可将文件下载到芯片中。连接下载线,调整实验箱的跳线后,打开电源,经Quartus中的“PROGRAMMER”菜单,调出编程器窗口。按下编程器窗口中的“START”按钮,设计的内容就开始下载到FP

24、GA芯片中。进行多组功能组合测试,显示结果符合设计要求,证明设计成功。6. 心得体会本次课程设计至此已经接近尾声,两周的时间虽然很短暂,但在这两个星期的设计过程中收获颇丰。设计的核心内容就是Quartus环境中,利用VHDL语言设计出基于FPGA的出租车计费器。整个设计过程中首先对EDA(电子设计自动化)这门课程有了更深的了解,因为课程设计本身要求将以前所学的理论知识运用到实际的电路设计当中去,在电路的设计过程中,无形中便加深了对VHDL语言的了解及运用能力,对课本以及以前学过的知识有了一个更好的总结与理解;以前的EDA实验只是针对某一个小的功能设计,而此次得EDA课程设计对我们的总体电路的设

25、计的要求更严格,需要通过翻阅复习以前学过的知识确立了实验总体设计方案,然后逐步细化进行各模块的设计;其次,在电路仿真的过程中总会出现一些问题,需要我们细心解决,所以这两周下来,我对电路故障的排查能力有了很大的提高;再次,通过此次课程设计,我对设计所用到的软件有了更加深刻地了解,这对我们以后的工作和学习的帮助都很有用处。感谢学校给我们这次机会,锻炼了我们的动手能力。通过这次课设让我明白了理论和实际操作之间差距,而且也让我很明确得意识到自己在VHDL语言的语法理解上有很多的知识漏洞,以后应该多钻研一下。同时也感谢指导老师在设计过程中的辅导以及同学的帮助。7. 参考文献1潘松,黄继业EDA技术与VH

26、DL北京:清华大学出版社,2007.12宋嘉玉,孙丽霞EDA实用技术北京:人民邮电出版社,2006.12 3齐洪喜,陆颖VHDL电路设计实用技术北京:清华大学出版社,2004.54刘艳萍,高振斌,李志军EDA实用技术及应用北京:国防工业出版社,2006.15章彬宏EDA应用技术北京:北京理工大学出版社,2007.78. 附录8.1. 程序源代码LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;-ENTITY TAXI IS-顶层文件PORT(

27、clk,rst,stop,switch:IN STD_LOGIC;-时钟;复位、停车、计费开关point,stop_s,switch_s:OUT STD_LOGIC;-小数点、停车、计费状态 segout:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);-数码管输出端wx:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);-位选端sta:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);-显示状态END ENTITY TAXI;ARCHITECTURE one OF TAXI IS-调用例化元件COMPONENT TAXI_FP IS-系统分频

28、器 PORT(clk:IN STD_LOGIC;-系统时钟clk_time,clk_mil,-计时时钟、计程时钟clk_scan,clk_v:OUT STD_LOGIC);-扫描时钟、显示切换时钟END COMPONENT;COMPONENT MIL IS-计程器PORT(clk,rst,stop:IN STD_LOGIC;-计程时钟、复位、停车信号wx:IN STD_LOGIC_VECTOR(2 DOWNTO 0);-位选信号p_mil:OUT STD_LOGIC;-里程计费信号datain:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);-输出里程数据END COMPON

29、ENT;COMPONENT PRICE IS-计价器PORT(clk_sys,p_t,p_mil:IN STD_LOGIC;-系统时钟、等时计费、里程计费信号rst,stop:IN STD_LOGIC;-复位、停车信号wx:IN STD_LOGIC_VECTOR(2 DOWNTO 0);-位选信号datain:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);-输出计价数据END COMPONENT;COMPONENT TIM IS-计时器PORT(clk_time,rst,stop:IN STD_LOGIC;-计时时钟、复位、停车信号wx:IN STD_LOGIC_VECTO

30、R(2 DOWNTO 0);-位选信号p_up:OUT STD_LOGIC;-等时计费信号datain:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);-输出等时数据END COMPONENT;COMPONENT decl7s IS-七段数码管译码器PORT(data:IN STD_LOGIC_VECTOR(3 DOWNTO 0);-输出数据led7s:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);-输出电平信号END COMPONENT;COMPONENT cnt8 IS-8进制计数器PORT (clk:IN STD_LOGIC;-扫描时钟 q:OUT

31、STD_LOGIC_VECTOR(2 DOWNTO 0);-输出结果END COMPONENT;-信号定义SIGNAL clk_time,clk_mil,-计时时钟、计程时钟 clk_scan,clk_v:STD_LOGIC;-扫描时钟、显示切换时钟SIGNAL p_mil,p_t,rst_s:STD_LOGIC;-里程等时计费信号、复位信号SIGNAL datain,datain_mil,datain_time,-输出数据相关信号 datain_price:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL wx_signal:STD_LOGIC_VECTOR(2 DOW

32、NTO 0);-位选信号BEGIN-例化元件连线定义u1:TAXI_FP PORT MAP(clk,clk_time,clk_mil,clk_scan,clk_v);u2:MILPORT MAP(clk_mil,rst_s,stop,wx_signal,p_mil,datain_mil);u3:PRICEPORT MAP(clk,p_t,p_mil,rst_s,stop,wx_signal,datain_price);u4:TIMPORT MAP(clk_time,rst_s,stop,wx_signal,p_t,datain_time);u5:decl7sPORT MAP(datain,se

33、gout);u6:cnt8PORT MAP(clk_scan,wx_signal);-信号赋值rst_s=(not switch) OR rst;stop_s=stop OR rst;switch_s=switch OR rst;wx=wx_signal;-显示数据选择进程PROCESS(rst,clk,wx_signal)BEGINIF rst=1 THENsta =111;point IF wx_signal3 THENdatain=datain_price;ELSE datain=datain_mil;END IF;sta=110;IF wx_signal=101 OR wx_signa

34、l=001 THEN point=1;ELSE pointdatain=datain_time;sta=001;point=0;END CASE;END IF;END PROCESS;END ARCHITECTURE;-LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY cnt3 IS-三进制计数器PORT (clk,rst:IN STD_LOGIC;q:out STD_LOGIC);END ENTITY;ARCHITECTURE

35、 bhv OF cnt3 ISBEGINPROCESS(clk)VARIABLE cnter :STD_LOGIC_VECTOR (1 DOWNTO 0);BEGINIF (rst=1) THENcnter:=00;q=0; ELSEIF rising_edge(clk) THEN if cnter=10 then cnter :=00;q=1;elsecnter:=cnter+1;q=0;END IF;END IF;END IF;END PROCESS;END bhv;-LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_U

36、NSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY cnt8 IS-八进制计数器PORT (clk:IN STD_LOGIC;q:out STD_LOGIC_VECTOR(2 DOWNTO 0);END ENTITY;ARCHITECTURE bhv OF cnt8 ISBEGINPROCESS(clk)VARIABLE cnter :STD_LOGIC_VECTOR (2 DOWNTO 0);BEGINIF rising_edge(clk) THEN if cnter=111 then cnter :=000;elsecnter:=cnter+1;

37、END IF;end if;q=cnter;END PROCESS;END bhv;-LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY cnt10 IS-十进制计数器PORT(clk,rst:IN STD_LOGIC;co:OUT STD_LOGIC;q:buffer STD_LOGIC_VECTOR(3 DOWNTO 0);END ENTITY;ARCHITECTURE bhv OF cnt10 ISSIGNAL cnter

38、:STD_LOGIC_VECTOR (3 DOWNTO 0);BEGINPROCESS(clk,rst) BEGINIF (rst=1) THENcnter=0000;co=0; ELSEIF rising_edge(clk) THEN IF cnter=1001 THEN cnter =0000;co=1;ELSEcnter=cnter+1;co=0;END IF;END IF;END IF;q=cnter;END PROCESS;END bhv;-LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL

39、;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY cnt10_d IS-初值为“3”的十进制计数器PORT(clk,rst:IN STD_LOGIC;co:OUT STD_LOGIC;q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END ENTITY;ARCHITECTURE bhv OF cnt10_d ISSIGNAL cnter :STD_LOGIC_VECTOR (3 DOWNTO 0);BEGINPROCESS(clk,rst)BEGINIF (rst=1) THENcnter=0011;co=0; ELSEIF rising_edge

40、(clk) THEN IF cnter=1001 THEN cnter =0000;co=1;ELSEcnter=cnter+1;co=0;END IF;END IF;END IF;q=cnter;END PROCESS;END bhv;-LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY cnt24 IS-24进制计数器PORT (clk,rst:IN STD_LOGIC; c1,c0:BUFFER STD_LOGIC_VECT

41、OR(3 DOWNTO 0);END ENTITY;ARCHITECTURE bhv OF cnt24 ISBEGINPROCESS(clk,rst)VARIABLE cnter :INTEGER:=0 ;BEGINIF (rst=1) THENc1=0000;c0=0000; ELSEIF rising_edge(clk) THEN IF (c0=1001 OR (c0=0011 AND c1=0010) THEN c0=0000;IF c1=0010 THENc1=0000; ELSEc1=c1+1;END IF; ELSEc0=c0+1;END IF;END IF;END IF;END PROCESS;END bhv;-LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论