常用时序电路设计实用教案_第1页
常用时序电路设计实用教案_第2页
常用时序电路设计实用教案_第3页
常用时序电路设计实用教案_第4页
常用时序电路设计实用教案_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1、D D触发器设计(shj)(shj)u 上升沿触发(chf)(chf)的D D触发(chf)(chf)器u 异步复位上升沿触发(chf)(chf)的D D触发(chf)(chf)器u 异步置位上升沿触发(chf)(chf)的D D触发(chf)(chf)器u 异步复位和置位上升沿触发(chf)(chf)的D D触发(chf)(chf)器u 同步复位上升沿触发(chf)(chf)的D D触发(chf)(chf)器u 同步置位上升沿触发(chf)(chf)的D D触发(chf)(chf)器u 带异步复位和时钟使然、上升沿触发(chf)(chf)的D D触发(chf)(chf)器第1页/共39页第一

2、页,共39页。上升(shngshng)沿触发的D触发器参考设计必须(bx)满足数据建立时间和保持时间/* 上升沿触发的D触发器参考(cnko)设计*/module d_flipflop_1(d,cp,q); input d,cp; output q; reg q; always(posedge cp)begin q = d;endendmodule 第2页/共39页第二页,共39页。/* 异步复位、上升(shngshng)沿触发的D触发器*/module d_flipflop_2(d,cp,reset,q); input d,cp,reset; output q; reg q; always(

3、posedge cp or negedge reset) beginif(reset=1b0) q=1b0;elseq = d; endendmodule 异步复位(f wi)、上升沿触发的D触发器第3页/共39页第三页,共39页。异步置位、上升(shngshng)沿触发的D触发器/* 异步置位、上升(shngshng)沿触发的D触发器*/module d_flipflop_3(d,cp,set,q); input d,cp,set; output q; reg q; always(posedge cp or negedge set) beginif(set=1b0) q=1b1;elseq

4、= d; endendmodule 第4页/共39页第四页,共39页。异步复位和置位、上升(shngshng)沿触发的D触发器/* 异步复位和置位、上升(shngshng)沿触发的D触发器*/module d_flipflop_4(d,cp,set,reset,q); input d,cp,reset,set; output q; reg q; always(posedge cp or negedge reset or negedge set) beginif(reset=1b0) q=1b0;else if(set=1b0)q=1b1;else q = d; endendmodule 第5页

5、/共39页第五页,共39页。同步(tngb)复位、上升沿触发的D触发器/* 同步(tngb)复位、上升沿触发的D触发器*/module d_flipflop_5(d,cp,reset,q); input d,cp,reset; output q; reg q; always(posedge cp) beginif(reset=1b0) q=1b0;elseq= d; endendmodule 第6页/共39页第六页,共39页。同步(tngb)置位、上升沿触发的D触发器/* 同步(tngb)置位、上升沿触发的D触发器*/module d_flipflop_6(d,cp,set,q); input

6、 d,cp,set; output q; reg q; always(posedge cp) beginif(pset=1b0) q=1b1;elseq= d; endendmodule第7页/共39页第七页,共39页。/*异步复位和时钟(shzhng)使然、上升沿触发的D触发器*/module dff_3(data,clk,en,reset,q); input data,clk,reset,en; output q; reg q; always(posedge clk or negedge reset) beginif(reset=1b0) q=1b0;else if(en=1b1)q= d

7、ata; endendmodule 异步复位和时钟使然(sh rn)、上升沿触发的D触发器第8页/共39页第八页,共39页。 Shift RegisterShift Registeru 移位寄存器是一种在时钟脉冲的作用下,将寄存器中的数据按位移动的逻辑电路。u 主要功能:串并转换u 串行输入串行输出(shch)(shch)u 串行输入并行输出(shch)(shch)u 并行输入串行输出(shch)(shch)第9页/共39页第九页,共39页。 串入串出移位(y wi)寄存器u基本串入串出移位寄存器原理图u 8位移(wiy)位寄存器由8个D触发器串联构成,在时钟信号的作用下,前级的数据向后移动。

8、第10页/共39页第十页,共39页。/* 串入串出移位寄存器参考(cnko)设计*/module shift_1(din,clk,dout); input din,clk; output dout; reg dout; reg tmp1,tmp2,tmp3,tmp4,tmp5,tmp6,tmp7; always(posedge clk) begintmp1=din;tmp2=tmp1;tmp3=tmp2;tmp4=tmp3;tmp5=tmp4;tmp6=tmp5;tmp7=tmp6;dout=tmp7; endendmodule 串入串出移位(y wi)寄存器参考设计第11页/共39页第十一页

9、,共39页。 串入并出shift registershift register 4 位串行输入并行输出移位寄存器的逻辑电路如图所示。该寄存器由4个同步D触发器组成这种D触发器的R端是是非(shfi)同步清零端。第12页/共39页第十二页,共39页。/* 串入并出移位寄存器参考(cnko)设计*/module shift_2(din,clk,clr,q); input din,clk,clr; output 3:0 q; reg 3:0 q; always(posedge clk or negedge clr) beginif(clr=1b0)q=4b0000;elseq0=din;q=q1;

10、endendmodule 串入并出移位(y wi)寄存器参考设计第13页/共39页第十三页,共39页。 并入(bn r)(bn r)串出shift shift registerregisterv 并入串出移位寄存器可以将一组二进制数并行送入一组寄存器,然后把这些数据串行从寄存器内输出。v 一个同步(tngb)并入串出移位寄存器的基本管脚:v 并行输出输入端:datav 时钟脉冲输入端:clkv 加载数据端:loadv 串行数据输出端:dout第14页/共39页第十四页,共39页。/* 串入并出shift register参考(cnko)设计*/module shift3(clk,din, lo

11、ad,q); input clk,load; input 3:0 din; output q; reg q; reg 3:0 tmp; always(posedge clk ) beginif(load=1b1) tmp=din;elsebegintmp=tmp1;tmp0=1b0;endq=tmp3; endendmodule 串入并出shift register参考(cnko)设计第15页/共39页第十五页,共39页。 计数器设计(shj)v 计数器是一种典型的时序器件,常用于对时钟脉冲的个数进行计数,还用于定时,分频,产生同步脉冲。v 按触发方式分:同步计数器和异步计数器。v 最容易(r

12、ngy)(rngy)的计数器设计就是cnt=cnt+1cnt=cnt+1,但是你可能得不到最好的结果。第16页/共39页第十六页,共39页。 基本(jbn)计数器的设计u基本计数器只能实现单一递增或递减计数功能基本计数器只能实现单一递增或递减计数功能没有其他控制端。没有其他控制端。 u以递增计数器为例,介绍其以递增计数器为例,介绍其Verilog HDLVerilog HDL设计方设计方法。法。u 递增计数器基本引脚:递增计数器基本引脚:u时钟时钟(shzhng)(shzhng)输入端:输入端:clkclku计数输出端:计数输出端:cntcnt第17页/共39页第十七页,共39页。Verilo

13、g HDL参考(cnko)设计(1)module count (clk,cnt);input clk;output 2:0 cnt;reg 2:0 cnt;always(posedge clk )beginif(cnt=7)cnt=0;elsecnt=cnt+1;endendmodule第18页/共39页第十八页,共39页。module cnt (clk,cnt);input clk;output 2:0 cnt;reg 2:0 cnt;reg 2:0 next_cnt;always(cnt )begincase(cnt)3h0:next_cnt=3h1; 3h1:next_cnt=3h2;

14、3h2:next_cnt=3h3; 3h3:next_cnt=3h4; 3h4:next_cnt=3h5; 3h5:next_cnt=3h6; 3h6:next_cnt=3h7; 3h7:next_cnt=3h0; default:next_cnt=3b000;endcaseendalways(posedge clk )cnt=next_cnt;endmoduleVerilog HDL参考(cnko)设计(2)第19页/共39页第十九页,共39页。问题(wnt)(wnt)思考1.1.上述描述上述描述(mio sh)(mio sh)的是一个模为多少的计数器?的是一个模为多少的计数器?2.2.请自

15、行设计一个同步模请自行设计一个同步模1212计数器计数器3.3.在在2 2基础上进行修改,设计一个带异步复位的模基础上进行修改,设计一个带异步复位的模1212计数器。计数器。4.4.同步复位的模同步复位的模1212计数器如何设计?计数器如何设计?第20页/共39页第二十页,共39页。 项目(xingm)设计1一、目的(md)(1)实现带计数允许和复位端的十进制、六进制和60进制计数器;(2)掌握计数器类型模块的描述方法;(3)掌握Veriog HDL模块的层次化设计方法。第21页/共39页第二十一页,共39页。二、说明计数器是数字电路系统中最基本的功能模块之一。设计十进制、六进制和100进制计

16、数器,要求计数器有计数允许和复位输入及进位输出功能。计数时钟(shzhng)可以用1Hz信号,用LED显示计数值。本设计要求用仿真和测试两种手段来验证计数器的功能。实验时,可以通过修改十进制计数器的设计得到六进制、100进制计数器。第22页/共39页第二十二页,共39页。三、设计要求(yoqi)(1) 完成各模块的Verilog HDL设计编码;(2) 进行功能仿真;(3) 下载并验证计数器功能;(4) 如果60进制计数器要求(yoqi)用6进制和10进制计数器搭建电路,请画出设计连接图,并完成设计编码和验证。第23页/共39页第二十三页,共39页。项目(xingm)设计2模拟(mn)74LS

17、160芯片HDL设计 clkclrnloadenabled3.0q3.0flagd3d2d1d0q3q2q1q0进位输出0 xxxxxx000010 xabcdabcd110 xxxxq不变110 xxxxq不变111xxxxqq1,最高到“1001”第24页/共39页第二十四页,共39页。分频器设计(shj)u 2 2的整数(zhngsh)(zhngsh)次幂的分频器设计;u 偶分频电路设计;u 占空比为1:151:15的分频电路设计。第25页/共39页第二十五页,共39页。 用Verilog语言完成对时钟信号 CLK 的 2 分频, 4 分频, 8 分频, 16 分频。 这也是最简单( j

18、indn)的分频电路,只需要一个计数器即可 。2 2、4 4、8 8、1616分频(fn pn)(fn pn)电路设计第26页/共39页第二十六页,共39页。电路的功能(gngnng)仿真波形第27页/共39页第二十七页,共39页。6分频电路设计与实现 对于分频倍数不是 2 的整数次幂的情况,我们只需要对源代码中的计数器进行一下计数控制就可以(ky)了,如下面用Verilog设计一个对时钟信号进行 6 分频的分频器 第28页/共39页第二十八页,共39页。电路(dinl)的仿真波形图第29页/共39页第二十九页,共39页。 在进行硬件设计的时候,往往要求得到一个占空比不是 1:1 的分频信号,

19、这时仍采用(ciyng)计数器的方法来产生占空比不是 1:1 的分频信号。下面源代码描述的是这样一个分频器:将输入的时钟信号进行 16 分频,分频信号的占空比为 1:15 ,也就是说,其中高电位的脉冲宽度为输入时钟信号的一个周期。 占空比1:15分频(fn pn)电路设计第30页/共39页第三十页,共39页。电路仿真波形图第31页/共39页第三十一页,共39页。在数码管上显示(xinsh)十进制秒计数任务分析: 1.需要将系统时钟(50MHz)分频,得到1Hz分频时钟。 2.对分频时钟进行十进制计数。 3.将计数器计数结果( ji gu)送数码管译码器上。 4.选择数码管显示。 第32页/共3

20、9页第三十二页,共39页。在数码管上显示(xinsh)十进制秒计数电路(dinl)框图:数码管译码电路(dinl)产生位选信号传送4位BCD码clk_sysnum_bcd3.0seg7.0scan3.0led0led1led2led3系统时钟分频电路十进制计数器clk_1scnt103.0rst第33页/共39页第三十三页,共39页。用4位led数码管显示(xinsh)“9527” 任务分析: 轮流打开(d ki)4个数码管,每个数码管显示0.01s0.1s,由于视觉暂留效应,就好像显示4个不同的数字。设计思路:1.打开(d ki)scan0的时候,在abcdefg线上赋值“9” 2.打开(d

21、 ki)scan1的时候,在abcdefg线上赋值“5” 3.打开(d ki)scan2的时候,在abcdefg线上赋值“2” 4.打开(d ki)scan3的时候,在abcdefg线上赋值“7” 第34页/共39页第三十四页,共39页。用4位led数码管显示(xinsh)“9527” 电路(dinl)框图:数码管译码电路(dinl)系统时钟分频电路2位计数器产生2位位选码2-4线译码器产生位扫描信号传送4位BCD码clk_sysclk_scanscan_sel1.0num_bcd3.0seg7.0scan3.0led0led1led2led3第35页/共39页第三十五页,共39页。用4位led数码管显示(xinsh)“9527” (1)输入输出端口定义:一共有几组输入输出端口?(2)设计扫描信号:首先要降低扫描速度,生成一个大约为0.01s-0.1s的时钟分频电路,由系统时钟分频,系统时钟定义为sysclk,分频后的时钟定义为div_scan。(第一个always语句块)(3)利用分频后的时钟信号产生一个2位的位选编码信号。(第二个always语句块,用2位计数器实现)(4)将2位的位选编码译码,产生四个数码管的四根扫描线,依次循环扫描。 (第三个always语句块,用2-4线译码器实现)(5)分不同的时间把9、5、2、7放到数码管的

温馨提示

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

评论

0/150

提交评论