Sopc课程设计(论文)-数字钟

上传人:QQ40****828 文档编号:398397 上传时间:2018-07-26 格式:DOC 页数:26 大小:221KB
返回 下载 相关 举报
Sopc课程设计(论文)-数字钟_第1页
第1页 / 共26页
Sopc课程设计(论文)-数字钟_第2页
第2页 / 共26页
Sopc课程设计(论文)-数字钟_第3页
第3页 / 共26页
点击查看更多>>
资源描述
Sopc 课程设计(论文)用纸1摘 要时钟, 自从它发明的那天起,就成为人类的朋友,但随着时间的推移,人们对它的功能又提出了新的要求,怎样让时钟更好的为人民服务,怎样让我们的老朋友焕发青春呢?这就要求人们不断设计出新型时钟。本人设计的产品为 24 小时制的多功能数字钟,具有时钟时间设置、闹钟时间设置、闹钟开、闹钟关等功能,数字显示小时、分钟、秒,闹钟就绪灯,蜂鸣器。本论文针对上述情况,在设计中采用 EDA 自动化设计技术。以计算机为基本平台,以硬件描述语言为系统逻辑描述表达方式,以 EDA 工具作为开发环境,以大规模可编程逻辑器件为设计载体,以专用集成电路 ASIC 为目标器件,以电子系统设计为应用方向的电子产品自动化设计过程。这样的设计方法,大大的缩短了设计的周期,降低了设计成本。设计出来的数字钟具有功能多、体积小、功耗低的特点。在论文中主要涉及的内容有:1、介绍 Verilog HDL 语言。2、介绍在 QuartusII 软件上对数字钟的设计。3、介绍系统仿真结果和硬件验证与分析。4、对整个设计系统进行总结。关键词: 电子设计自动化 Verilog HDL 可编程逻辑器件Sopc 课程设计(论文)用纸2目 录摘 要 I第 1 章 绪 论 3第 2 章 Verilog HDL 语言 .521 Verilog HDL 语言简介 522 Verilog HDL 主要特点 523 Verilog HDL 语言开发软件-Quartus 6第 3 章 数字钟 Verilog HDL 的设计 .731 设计方案及工作原理 .73.1.1 数字钟设计原理 .73.1.2 数字钟功能 732 数字钟钟控定时器的基本组成 83.2.1 D 触发器的设计 .83.2.2 数据选择器的设计 .93.2.3 计数器的设计 103.2.4 数据分配器 123.2.5 译码器 .133.2.6 分频器 .153.2.7 闹时器 .163.2.8 报时器 1733 数字钟原理图 19第 4 章 软件调试 .20结论 21参考文献 22附录 23Sopc 课程设计(论文)用纸3第 1章 绪 论中国是世界上最早发明计时仪器的国家。有史料记载,汉武帝太初年间(纪元前104-101年)由落下闳创造了我国最早的表示天体运行的仪器浑天仪。东汉时期(公元130年)张衡创造了水运浑天仪,为世界上最早的以水为动力的观测天象的机械计时器,是世界机械天文钟的先驱。盛唐时代,公元725年张遂(又称一行)和梁令瓒等人创制了水运浑天铜仪,它不但能演示天球和日、月的运动,而且立了两个木人,按时击鼓,按时打钟。第一个机械钟的灵魂擒纵器用于计时器,这是中国科学家对人类计时科学的伟大贡献。它比十四世纪欧洲出现的机械钟先行了六个世纪。第一只石英钟出现在二十世纪二十年代,从三十年代开始得到了推广,从六十年代开始,由于应用半导体技术,成功地解决了制造日用石英钟问题,石英电子技术在计时领域得到了广泛的应用。并取代机械钟做了更精确的时间标准。早在1880年,法国人皮埃尔居里和保罗雅克居里就发现了石英晶体有压电的特性,这是制造钟表“心脏”的良好材料。科学家以石英晶体制成的振荡计时器和电子钟组合制成了石英钟。经过测试,一只高精度的石英钟表,每年的误差仅为3-5秒。1942年,著名的英国格林尼治天文台也开始采用了石英钟作为计时工具。在许多场合,它还经常被列为频率的基本标准,用于日常测量与检测。大约在 1970 年前后,石英钟表开始进入市场,风靡全球。随着科学的进步,精密的电子元件不断涌现,石英钟表也开始变得小巧精致,它既是实用品,也是装饰品。它为人们的生活提供方便,更为人们的生活增添了新的色彩。 在现行情况下根据简单实用强的、走时准确进行设计。而实验证明,钟表的振荡部分采用石英晶体作为时基信号源时,走时更精确、调整更方便。钟是一种计时的器具,它的出现开拓了时间计量的新里程。提起时钟大家都很熟悉,它是给我们指明时间的一种计时器,并且我们每天都要用到它。二十世纪八十年代中国的钟表业经历了一场翻天覆地的大转折。其表现在三个方面:(1)从生产机械表转为石英电子表; (2)曾占据中国消费市场四十多年的大型国有企业突然被刚刚冒起的“组业”所取代,钟表生产中心转向中国南方沿海一带;这场转折以迅雷不及掩耳的速度,冲击着传统的中国钟表工业。中国的钟表业从技术简单、零件少的石英钟机芯制造入手。最初石英钟机芯全靠从日本、德国进口,1989年开始完全自己生产,包括模具的制造加工。近十余年,逐渐提高机芯质量的稳定性,同时转向对手表机芯研制与开发。目前石英钟表机芯生产主要在福建省福州、广东东莞、番禺;机械钟表机芯在上海、山东等地。Sopc 课程设计(论文)用纸4现在我国的电子业发展非常快速,电子业的发展有利于钟表业的发展。在中国钟表发展史上,国产机芯研制的失败已经成为过去,“组装业”作为新兴钟表工业的起步阶段也已成为过去。一支新的充满智慧的钟表精英在成长。我们相信在科技高速发展的今天,钟表业运用当今材料工业、电子工业和其他领域的最新技术,一定会生产出代表中国科学水平的产品。我们希望钟表业的精英们在提高制造技术水平中不断创新,培育出拥有自主知识产权的品牌。这正是中国钟表业发展的希望。数字钟被广泛用于个人家庭,车站, 码头、办公室等公共场所,成为人们日常生活中的必需品。由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,运用超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。因此,研究数字钟及扩大其应用,有着非常现实的意义。Sopc 课程设计(论文)用纸5第 2章 Verilog HDL 语言21 Verilog HDL 语言简介Verilog VHDL(简称Verilog)是一种应用广泛的硬件描述语言,是以文本形式来描述数字系统硬件的结构和行为的语言,可用于从算法级、门级到开关级的多种抽象层次的数字系统设计。它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。Verilog HDL的产生和应用可追溯到20世界80年代,1984年GDA(Gateway Design Automation)公司陆续开发了Verilog HDL及其仿真器,1989年Cadence收购了该公司,1990年Cadence公开发表了Verilog HDL,1995年成为IEEE标准,即IEEE Std.1364-1995或 Verilog HDL 1364-1995。22 Verilog HDL 主要特点1) 既能进行面向综合的电路设计,又可用于电路的模拟仿真。2) 能够在多个层次上对所设计的系统加以描述,从开关级、门级、寄存器传输级(RTL)到行为级等,都可以胜任;设计的规模是任意的,语言不对设计的规模施加任何限制。3) 灵活多样的描述风格,可进行行为描述,也可时行结构描述或数据流描述;支持混合建模,在一个设计中各个模块可以在不同的设计层次上建模和描述。4) Verilog HDL 的行为描述语句,如条件语句、赋值语句和循环语句等,类似于软件高级语言,便于学习和使用。5) 内置各种基本逻辑门,如 and、or 和 nand 等,可方便地进行门级结构描述;内置各种开关级元件,如 pmos、nmos 和 cmos 等,可进行开关级的建模。6) 用户定义原语(UDP)创建的灵活性。用户定义的原语既可以是组合逻辑;可通过编程语言接口(PLI)机制进一步扩展 Verilog HDL 语言的描述能力。PLI 是允许外部函数访问 Verilog HDL 模块内信息,允许设计者与模拟器交互的例程集合。23 Verilog HDL 语言开发软件-QuartusVerilog HDL是一种硬件描述语言(HDL:Hardware Discription Language),常Sopc 课程设计(论文)用纸6用的Verilog HDL语言开发软件有Altera公司的MAX+PLUS II,Quartus II和Xilinx公司的Foundation ISE。本文主要是利用软件Quartus II的文本输入设计方式来进行设计的。Quartus II是Altera公司推出的新一代开发软件,适合于大规模逻辑电路设计。Quartus II软件的设计流程概括为设计输入、设计编译、设计仿真和设计下载等过程。Quartus II软件支持多种编辑输入法,包括图形编辑输入法、VHDL、Verilog HDL的文本输入法、符合编辑输入法,以及内存编辑输入法。Sopc 课程设计(论文)用纸7第 3章 数字钟 Verilog HDL的设计31 设计方案及工作原理3.1.1数字钟设计原理数字钟的示意如下图所示。它由石英晶体振荡器、分频器、计数器、译码器显示器和校时电路组成。振荡器产生稳定的高频脉冲信号,作为数字钟的时间基准,然后经过分频器输出标准秒脉冲。秒计数器满60后向分计数器进位,分计数器满60后向小时计数器进位,小时计数器按照“24翻1”规律计数。计数器的输出分别经译码器送显示器显示。计时出现误差时,可以用校时电路校时、校分。产生闹铃和报时音校时时、分、秒计时时间显示数字钟示意图如上图所示312 数字钟功能1) 具有正确的时、分、秒计时功能。2) 计时结果要用数码管分别显示进、分、秒的十位和个位。3) 有校时功能。当 S 键按下时,分计数器以秒脉冲的速度递增,并按 60min 循环,即计数到期 59min 后再回到 00。当工 A 键按下时,时计数器以秒脉冲的速度递增,并按 24h 循环,即计数到 23h 后再回 00。Sopc 课程设计(论文)用纸84) 利用扬声器整点报时。当计时到达 59 分 59 秒时开始报时,在 59 分 50 秒、52 秒、54 秒、56 秒、58 秒时鸣叫,鸣叫声频为 500hz;到达 59 分 60 秒时为最后一声整点报时,频率为 1khz。32 数字钟钟控定时器的基本组成数字钟钟控定时器由:计数器、D触发器、数据选择器、数据分配器、译码器、报时器、闹时器组、分频器和一个或非门这九大模块构成。计数器主要分为24进制计数器和60进制计数器,24进制计数器对数字钟的小时位计行计数, 60进制对数字钟的分和秒进行计数。D触发器主要是用在对数字进行校准时的按键消抖作用,以免在校时的时候产生抖动信号。数据分配器的作用是在动态译码时选择输出数据。译码器对输出信号进行译码在数码管上显示出来,让大家数字钟的表示直观。报时电路是使时钟在整点有报时功能而设计的。闹时器是对时钟进行比较产生闹时电信号的电路。3.2.1 D触发器的设计在本设计中运用到了3 个D触发器,它主要是用在对数字进行校准时的按键消抖作用,以免在校时的时候产生抖动信号。在电路中用到了 D 触发器 74LS74,74LS74 的管脚图如图 3-1。D2 Q 5Q 6CLK341PRECLRA74LS74图 3-1 74LS74 管脚图触发器,它是由门电路构成的逻辑电路,它的输出具有两个稳定的物理状态(高电平和低电平) ,所以它能记忆一位二进制代码。触发器是存放在二进制信息的最基本Sopc 课程设计(论文)用纸9的单元。按其功能可为基本 RS 触发器触、JK 触发器、D 触发器和 T 触发器。这几种触发器都有集成电路产品。其中应用最广泛的当数 JK 触发器和 D 触发器。不过,深刻理解 RS 触发器对全面掌握触发器的工作方式或动作特点是至关重要的。事实上,JK 触发器和 D 触发器是 RS 触发器的改进型,其中 JK 触发器保留了两个数据输入端,而 D 触发器只保留了一个数据输入端。D 触发器有边沿 D 触发器和高电平 D 触发器。74LS74 为一个电平 D 触发器。3.2.2数据选择器的设计在多路数据传送过程中,能够根据需要将其中任意一路选出来的电路,叫做数据选择器,也称多 路 选 择 器 或多 路 开 关 。 数据选择器(MUX)的逻辑功能是在地址选择信号的控制下,从多路数据中选择一路数据作为输出信号。通过 QuartusII 软件进行编译后,仿真结果如图 3-2 所示,图 3-2 2 选一数据选择器仿真结果打包后成元器件如图 3-3 所示;图 3-3 2 选一数据选择器3.2.3 计数器的设计计数器是一种计算输入脉冲的时序逻辑网络,被计数的输入信号就是时序网络的时钟脉冲,它不仅可以计数而且还可以用来完成其他特定的逻辑功能,如测量、定时控制、数字运算等等。Sopc 课程设计(论文)用纸10数字钟的计数电路是用两个六十进制计数电路和“24 进制”计数电路实现的。数字钟的计数电路的设计可以用反馈清零法。当计数器正常计数时,反馈门不起作用,只有当进位脉冲到来时,反馈信号将计数电路清零,实现相应模的循环计数。以六十进制为例,当计数器从 00,01,02,59 计数时,反馈门不起作用,只有当第60 个秒脉冲到来时,反馈信号随即将计数电路清零,实现模为 60 的循环计数。下面是用 Verilog HDL 语言编写的 24 进制、60 进制计数器的程序代码:1)24 进制计数器程序代码;module count24(ten,one,clk);output3:0 ten,one;input clk;reg3:0 ten,one;always (posedge clk)beginif(ten3:0=2one3:0=0;endelse if(one3:0=9)beginone3:0=0;ten3:0=ten3:0+1;endelseone3:0=one3:0+1;endendmodule通过 QuartusII 软件进行编译后,仿真结果如图 3-4 所示,图 3-4 24 进制计数器仿真结果Sopc 课程设计(论文)用纸11打包后成元器件如图 3-5 所示;图 3-5 24 进制计数器2)60 进制计数器程序代码;module count60(cout,ten,one,clk);output3:0 ten,one;output cout;input clk;reg3:0 ten,one;always (posedge clk)beginif(one3:0=9)beginone3:0=0;if(ten3:0=5)ten3:0=0;elseten3:0=ten3:0+1;endelseone3:0=one3:0+1;endassign cout=(ten3:0=0endmodule通过 QuartusII 软件进行编译后,仿真结果如图 3-6 所示;图 3-6 60 进制计数器仿真结果Sopc 课程设计(论文)用纸12打包后成元器件如图 3-7 所示;图 3-7 60 进制计数器3.2.4 数据分配器能够将 1 个输入数据,根据需要传送到 m 个输出端的任何一个输出端的电路,叫做数据分配器,又称为多路分配器,其逻辑功能正好与数据选择器相反。电路结构:由与门组成的阵列。分类:1 路-4 路数据分配器(如 74LS139)、1 路-8 路数据分配器(74LS138)等。由于译码器和数据分配器的功能非常接近,所以译码器一个很重要的应用就是构成数据分配器。 也正因为如此,市场上没有集成数据分配器产品,只有集成译码器产品。通过 QuartusII 软件进行编译后,仿真结果如图 3-8 所示;图 3-8 数据分配器仿真结果打包后成元器件如图 3-9 所示;图 3-9 数据分配器Sopc 课程设计(论文)用纸133.2.5译码器译码器是一个多输入、多输出的组合逻辑电路。它的工作是把给定的代码进行“翻译”,变成相应的状态,使输出通道中相应的一路有信号输出。译码器在数字系统中有广泛的用途,不仅用于代码的转换、终端的数字显示,还用于数字分配,存储器寻址和组合控制信号等。译码器可以分为通用译码器和显示译码器两大类。在电路中用的译码器是共阴极译码器 74LS48,用 74LS48 把输入的 8421BCD 码 ABCD 译成七段输出 a-g,再由七段数码管显示相应的数。 通过 QuartusII 软件进行编译后,仿真结果如图 3-11 所示;图 3-11 译码器仿真结果3.2.6分频器分频器的作用是将由石英晶体产生的高频信号分频成基时钟脉冲信号和扩展部分所需的频率。在此电路中,分频器的功能主要有两个:一是产生标准脉冲信号;二是功能扩展电路所需的信号,如仿电台用的 1KHz 的高频信号和 500Hz 的低频信号等.可以组成二分频电路和四分频电路和十六分频器。打包后成元器件如图 3-12 所示;图 3-12 2 分频、4 分频、16 分频分频器3.2.7闹时器数字钟在指定的时刻发出信号,或驱动音响电路“闹时” ;或对某装置的电源进行接通或断开“控制” 。不管是闹时还是控制,都要求时间准确,即信号的开始时刻与持续时间必须满足规定的要求。在这里将举例来说明它的工作原理。要求上午 7 时 59 分Sopc 课程设计(论文)用纸14发出闹时信号,持续 1 分钟。设计如下:7 时 59 分对应数字钟的时时个位计数器的状态为 ,分十位计3210()HQ数器的状态为 ,分个位计数器的状态为 ,若32102()MQ 10M将上述计数器输出为“1”的所有输出端经过与门电路去控制音响电路,就可以使音响电路正好在 7 点 59 分响,持续 1 分钟后(即 8 点)停响。所以闹时控制信号 Z 的表达式为 01SQ21020301()()()HMZQ式中,M 为上午的信号输出,要求 M=1。如果用与非门实现的逻辑表达式为: 2102301()()()HMZQQ在电路图中用到了 4 输入二与非门 74LS20,集电极开路的 2 输入四与非门74LS03,因 OC 门的输出端可以进行“线与” ,使用时在它们的输出端与电源+5V 端之间应接一电阻 RL。RL 的值由下式决定:minmaxCOHLIVR maxminCOLLIVR=0.4V, =0.4mA, =2.4V, =50uA, =8mA, =100Ua;m 为负载门输axOLILminOLVIHOLH入端总个数。取 RL=3.3K。如果控制 1KHz 高音和驱动音响电路的两极与非门也采用 OC 门,则 RL 的值应该重新计算。由电路图可以看见,上午 7 点 59 分,音响电路的晶体管导通,则扬声器发出1KHz 的声音。持续 1 分钟到 8 点整晶体管因为输入端为“0”而截止,电路停闹。闹时器程序代码;module nsdl(out,m1,m2,h1,h2,tenh,oneh,tenm,onem,clk1k,cin);output out;input3:0 m1,m2,h1,h2,tenh,tenm,oneh,onem;input cin, clk1k;Sopc 课程设计(论文)用纸15reg out;always (m1 or m2 or h1 or h2 or tenh or tenm or oneh or onem or cin) beginif(cin) out=0;else if(cin=0)beginif(tenh=h1elseout=0;endendendmodule打包后成元器件如图 3-13 所示;图 3-13 闹时器328 报时器(一)功能要求报时的功能要求是:每当数字钟计时快要到正点时,通常按照 4 低音 1 高音的顺序发出间断声响,以最后一声高音结束的时刻为正点时刻。(二)该电路的工作原理电路图的工作原理举例来说明;例如设 4 声低音(约 500Hz)分别 在 59 分 51 秒、53 秒、55 秒及 57 秒,最后一声高音(约 1000Hz)发生在 59 秒,它们的持续时间为1 秒。只有当分十进位的 ,分个位的 ,秒十位的201MQ310MQ及秒个位的 时,音响电路才能工作。20SQ1S(三)对该电路中使用的元件的介绍因为在该电路中所用的元件主要是 74LS00、74LS04 及 74LS20 这些元件在前面的Sopc 课程设计(论文)用纸16电路中已经介绍.这里就不再介绍它了报时器程序代码;module baoshi(tenm,onem,tens,ones,q500,q1k,a,b);input a,b;input 3:0tenm,onem,tens,ones;output q500,q1k;reg q500,q1k;always (tenm or onem or tens or ones)beginif (tenm,onem=8h59else q500=0;endalways (tenm or onem or tens or ones)beginif (tenm3:0=0000else q1k=0;endendmodule打包后成元器件如图 3-14 所示;图 3-14 报时器Sopc 课程设计(论文)用纸1733 数字钟原理图将各模块组合一起构成如图 3-15 所示:Sopc 课程设计(论文)用纸18第 4章 软件调试软件调试的过程据功能的增加分为几步:首先,根据原来的 100 进制显示程序的基础上编写成时分秒六位显示的主程序。该程序将时分秒分成个位和十位分别计算,所以将 60 进制和 24 进制变成 10 进制、6进制和 2 进制。又因为如果时十位为 2 的话,不能大于 3,所以在分十位向时个位进位时得判断时十位是否为 2,在组员的帮助下经过不断试验和修改终于完成。过程比较顺利。该电子钟使用一个键来调时,利用长按来选择所要调的位,用短暂按下来对位进行加 1,前提是时钟暂停,这个功能也是通过长按来实现的。选位是从秒个位到时十位依次选取,但到时十位以后就回不到秒个位了,就是不会循环。所以就得对选的位进行检查,如果到了时十位再按取位键就重新赋给秒个位地址。这样就可以循环选位了。但在后来的测试中又有了新的问题,如果该位到了 9,对一个位进行加 1 调整就会显示乱码。时分秒的十位都会调到 9!对于这个问题费看一些周折。起先构思再加一个减一的键,但不但没有解决这个乱码问题而且减到了 0 一下很可能也会出现乱码。所以就转而寻求程序解决。调时的时候让它也像正常运行的时候进位?没见过这样的。继而决定在进行加 1 调时的时候检测该位是否到 10 或 6 或 3。所以就产生了所谓的调时比较子程序,就是在调时的时候将该位跟 10 或 6 或 3 比较。最后,调试的时候却总是出现这样的情况:所调的位超过了 9 或 5 或 2 就变成乱码。比原来进步的地方就是时分秒的十位不用超过 9 就变成乱码。这说明虽然还没成功,但还是有前展的。就继续调试。Sopc 课程设计(论文)用纸19结论我们对SOPC 课程设计这门课的学习主要是理论学习和实验实践两个部分。通过对其理论知识的学习,我对硬件描述语言有了初步的认识,学会利用硬件描述语言完成相应功能系统的设计。在实验中,我们可以通过自己的实际操作,找出问题,改正错误,提出改进之法,大胆创新,使自己的能力在实践中成长起来。经过这几周的实验,我基本了解了实验设计过程。虽然有些实验很简单,但是他们体现了 EDA 设计的大概流程 。通过这么多次的试验我将一些在课堂上了解了的知识的运用到了实验中,经过实验课之后,我对于 VHDL 语言的理解更加深刻了,本来有些不理解的理论知识,都能通过实验得到一定解答。在实验的过程中,有时遇到难题的时候,我们上网或去图书馆查找资料,或者向老师和同学们讨论,在这个过程中我学习到了一些我们在课堂上学不到的知识。通过这次课程设计使我更加深刻的懂得了理论与实际相结合的重要性!只有理论知识无法实现相关的设计和实际操作,当把所学的理论知识与实践相结合起来,从理论中得出结论,这样才能把所学的理论知识更加巩固至掌握住,才能提高自己的实际动手能力和独立思考能力。Sopc 课程设计(论文)用纸20参考文献1 李东生.电子设计自动化与 IC 设计.北京:高等教育出版社,20042 蔡明生.电子设计.北京:高等教育出版社,20043 齐洪喜,陆颖.VHDL 电路设计使用教程.北京:清华大学出版社,20044 雷伏容.VHDL 电路设计.北京:清华大学出版社,20065 黄仁欣.EDA 技术实用教程.北京:清华大学出版社,20066 路而红.电子设计自动化应用技术.北京:高等教育出版社,20047 陈有卿.实用 555 时基电路 300 例.北京:中国电力出版社,20048 晶体管技术编辑部.电子技术原理.制作.实验.北京:科学出版社,20059 张亦华,延明.数字电路 EDA 入门VHDL 程序实例集.北京:北京邮电大学出版社,200310 王延才,赵德申.电子技术实训.北京:高等教育出版社,2003Sopc 课程设计(论文)用纸21附录 下面是用 Verilog HDL 语言编写的 2 选一数据选择器的程序代码:module mux2(out,a,b,sel);output out;input a,b,sel;reg out;always (a or b or sel)beginif(sel=1)out=a;else out=b;endendmodule下面是用 Verilog HDL 语言编写的 24 进制、60 进制计数器的程序代码:1)24 进制计数器程序代码;module count24(ten,one,clk);output3:0 ten,one;input clk;reg3:0 ten,one;always (posedge clk)beginif(ten3:0=2one3:0=0;endelse if(one3:0=9)beginone3:0=0;Sopc 课程设计(论文)用纸22ten3:0=ten3:0+1;endelseone3:0=one3:0+1;endendmodule2)60 进制计数器程序代码;module count60(cout,ten,one,clk);output3:0 ten,one;output cout;input clk;reg3:0 ten,one;always (posedge clk)beginif(one3:0=9)beginone3:0=0;if(ten3:0=5)ten3:0=0;elseten3:0=ten3:0+1;endelseone3:0=one3:0+1;endassign cout=(ten3:0=0endmodule数据分配器程序代码:module x(q,L,hten,hone,mten,mone,sten,sone,clk);output3:0 q;output5:0 L;input 3:0 hten,hone,mten,mone,sten,sone;input clk;reg3:0 q,rel;Sopc 课程设计(论文)用纸23reg5:0 L;always (posedge clk)beginif(rel3:0=5) rel3:0=0;elserel3:0=rel3:0+1;endalways (rel )beginif(rel3:0=0) begin q3:0=sone3:0; L5:0=6b111110;endelse if(rel3:0=1) begin q3:0=sten3:0;L5:0=6b111101;endelse if(rel3:0=2) begin q3:0=mone3:0;L5:0=6b111011;endelse if(rel3:0=3) begin q3:0=mten3:0; L5:0=6b110111;endelse if(rel3:0=4) begin q3:0=hone3:0; L5:0=6b101111;endelse begin q3:0=hten3:0;L5:0=6b011111;endendendmodule译码器程序代码;module yima308(out,in);output7:0 out;input3:0 in;reg7:0 out;always (in)begincase(in)4d0:out=8b00000010;4d1:out=8b10011110;4d2:out=8b00100100;4d3:out=8b00001100;4d4:out=8b10011000;4d5:out=8b01001000;4d6:out=8b01000000;4d7:out=8b00011110;4d8:out=8b00000000;4d9:out=8b00001000;Sopc 课程设计(论文)用纸24endcaseendendmodule1)2 分频程序代码;module fen2(a,b,q);input b;output a;output q;reg q;always (posedge b )beginq=q+1;endassign a=(q=4d1)?1:0;endmodule2)4 分频程序代码;module fen4(a,b,q);input b;output a;output1:0 q;reg1:0q;always (posedge b )beginq=q+1;endassign a=(q=2d3)?1:0;endmodule3)16 分频程序代码;module fen16(a,b,q);input b;output a;output3:0 q;reg3:0q;always (posedge b )beginSopc 课程设计(论文)用纸25q=q+1;endassign a=(q=4d15)?1:0;endmodule闹时器程序代码;module nsdl(out,m1,m2,h1,h2,tenh,oneh,tenm,onem,clk1k,cin);output out;input3:0 m1,m2,h1,h2,tenh,tenm,oneh,onem;input cin, clk1k;reg out;always (m1 or m2 or h1 or h2 or tenh or tenm or oneh or onem or cin) beginif(cin) out=0;else if(cin=0)beginif(tenh=h1elseout=0;endendendmodule报时器程序代码;module baoshi(tenm,onem,tens,ones,q500,q1k,a,b);input a,b;input 3:0tenm,onem,tens,ones;output q500,q1k;reg q500,q1k;always (tenm or onem or tens or ones)beginif (tenm,onem=8h59else q500=0;endalways (tenm or onem or tens or ones)beginif (tenm3:0=0000else q1k=0;endendmodule
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸设计 > 毕设全套


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!