数字系统设计实践(电信).ppt_第1页
数字系统设计实践(电信).ppt_第2页
数字系统设计实践(电信).ppt_第3页
数字系统设计实践(电信).ppt_第4页
数字系统设计实践(电信).ppt_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

数字系统设计实践,倪海燕 Email: Phone:688481 Office:227 Lab:401,参考书目,马建国等电子系统设计.高等教育出版社.2003年 杨刚等电子系统设计与实践电子工业出版社.2004年 包明等EDA技术与数字系统设计.北京航空航天大学出版社.2001年 诸振勇等FPGA设计及应用(第二版)西安电子科技大学出版社.2006年 李洪伟等.基于Quartus II 的FPGA/CPLD设计. 电子工业出版社2006年 其他电子系统设计类书籍,回顾,上学期数电实验中的综合实验之一,多功能数字钟电路 如何分析思考? 如何实现?,多功能数字钟,一、基本要求: a)计数显示功能 分、秒:60进制,二位数码管显示(十进制); 时:24进制,二位数码管显示(十进制)。 b)具有清零功能 复位键按下,系统复位,显示皆为0。 c)校时功能 时校准键:小时递增循环; 分校准键:分钟递增循环; 秒校准键:秒递增循环。 二、 进阶要求: a)具有整点报时功能,整点报时的同时LED灯花样显示; b)具有闹铃(闹10s)功能,通过按键可以任意设置闹铃时间; c)具有12小时和24小时二种制式,按键切换; d)秒表功能,精度0.01s。,电子系统和数字系统,现代电子系统一般是由模拟电子系统,数字电子系统和微处理器,以及他们之间的接口构成 模拟系统一般是对目标信号进行采集,放大和对目标最后控制执行 微处理器是核心处理机构 ,对信号进行运算,输出结果 数字系统一般是微处理器的周边设备,辅助微处理器运算;在小型系统中有时可以直接取代微处理器 这里的接口狭义讲就是是模/数,数/模变换的部分,广义的接口指的是不同设备之间连接的部件 用数字信号完成对数字量进行算术运算和逻辑运算的电路称为数字电路,或数字系统。由于它具有逻辑运算和逻辑处理功能,所以又称数字逻辑电路。,电子系统分类,测量与测控系统:如各种电量非电量的测量仪表,航天飞机轨道控制系统,生产控制系统 通信系统:如数字通信,微波通信,手机等 计算机系统:单机,网络系统等 智能家居家电系统:智能楼宇,数字电视,音视频录放设备 汽车电子系统:汽车导航,汽车控制等 医疗电子系统:现代各种医疗检查设备 其他电子系统:如GPS系统等,电子系统设计,完整的电子设计过程包括概念级、功能级和技术级设计,以及针对多种设计在制造和使用阶段的反馈信息的再设计(升级设计) 早期的设计手段主要靠手工和图纸完成,如今可以使用计算机进行辅助设计和模拟,更加方便快捷。,电子系统实践,把设计的系统通过具体的硬件电路和器件变成实际的东西 实现手段有SSI,MSI,LSI,VSLI(FPGA,ASIC) 实验室里不可能完全产品化,但是可以模拟实现实际需求的性能要求(原型机)。通过实验室里的设计和实验可以达到开发产品的目的。,电子系统设计方法,自上而下:总体分模块的方法,有的模块是需要自己设计的,有的模块可以重复利用的或者是标准化的(比如单片机系统中的单片机最小系统是核心模块,在很多系统中可以重复利用,又如编码器,译码器模块在数字电路中经常用到,已经变成了标准化模块等等)最常用的方法 自下而上:模块搭起的方法 中间碰头:总体分块与模块制作同时进行,自上而下的设计方法,用户的功能,指标要求总体框架子系统构成子功能模块 由粗到细,由模糊到清晰,由整体到局部 为了加快设计过程,尽量寻找已标准化或可重用的子模块,以设计计算机系统为例,数字系统的特点,只能对数字量或者逻辑量进行处理和运算 数字电路可以用各种方法进行描述 真值表 卡诺图 逻辑表达式 状态图 逻辑图 *流程图(算法流程图,ASM图,MDS图等) *硬件描述语言HDL(VHDL,Verilog HDL) 实现简单,系统可靠 集成度高,功能实现容易,受控器和控制器模型,是数字系统较常见的一种组成结构,也是分析和设计数字系统首选的基本方法 受控器,又称为数据子系统,主要完成数据采集,存储,运算处理和传输,主要由存储器,运算器,数据选择器等部件组成;其操作是在控制器的控制信号下进行的。 控制器,又称控制子系统,是执行算法的核心,一般是一个时序系统,且较常见的是一个有限状态机系统,CPU内部结构,多功能时钟,自上而下的设计步骤,1 明确设计要求 把要求罗列成条,且无二义性 画出简单方框图,标明输入、输出信号和指标 2 确定设计方案 方案比较权衡 常用方框图,流程图或描述语言进行描述系统 必要时画出时序图 3 受控器设计 设计得到受控器电路原理图 4 控制器 分析控制器的时序构成 必要时设计一个或多个有限状态机 5 仿真优化 使用EDA软件进行波形仿真,必要时修改设计 6 硬件实现 下载到实验箱 测试指标能否满足要求,必要时修改设计,算法流程图,算法流程图由工作块、判别块、条件块、开始结束块以及指向线组成,工作块,判别块,算法流程图,条件块,开始块和结束块,乘法电路举例,ASM图,状态块,ASM图,判断块,ASM图,条件输出块,举例乘法器,算法流程图,ASM图,例、交通灯控制器,1 明确设计要求 东西-南北向交通灯控制系统 东西向灯:绿(40s)黄(20s)红(60s) 南北向灯:红(60s) 绿(40s)黄(20s) 同时各方向倒计时(601,401,201循环) 警察有权随时指定系统停在某个状态,确保某个方向的车辆畅通;此时红绿灯保持不变,倒计时数字全变为0;直到警察取消操作。,2确定系统方案,画出简单流程图,3 确定系统方案,画出详细流程图,4 确定控制器、受控器分离模型,5 确定受控器方案,6分析控制器时序和状态,7 确定实现方式,独立芯片实现 单片机实现 FPGA实现(图形输入,文本编程) ASIC实现,8 波形仿真,特别检查控制器的波形是否符合时序要求,9下载实验箱,检查最后的输入输出是否符合要求,科技报告写作,科技报告是描述科学技术研究的进展和成果,或技术研制实验和评价的结果,或陈述科学技术问题的现状和发展的文件。 科技报告一般分为科技考察报告、技术报告、科技实验报告、科技政策报告等几种 比平时的实验报告要求更加高一些,但又比论文要求低一些,可以要求说处于 实验报告和论文之间。我们一般用在电子设计竞赛中。,科技报告的基本要求,技术报告是科技工作者围绕某一专题从事研究、实验工作或处理某项技术问题时所撰写的阶段报告、成果报告或总结报告。它是科技人员用来交流自己研究工作成果的重要手段,是科研人员(或学生、参赛选手)向主管部门(或指导教师、评委)汇报研究过程、阶段成果和最终成果的正式技术文件。它的内容比较深、专业性强,通常都有一些数据、图表和公式等。 电子竞赛技术报告是科技报告的类型之一。 技术报告可参照科技论文的格式,即:题目、著者、摘要、关键词、引言、正文、结论、致谢、附录、参考文献。,报告的几点建议,(1)期刊上发表的科技论文由于受到版面的限制,字数一般控制在3000字5000字之间,而技术报告可放宽对字数的限制。鉴于电子竞赛等都是系统级的题目,需要编写的内容多,有的还需要附上程序清单或元件清单,因此其字数应相应增多。 (2)科技论文结构严谨、行文规范,是科技写作的基础,在撰写技术报告时可以学习并效仿,对于科技论文的格式要求,应灵活运用,例如:摘要、关键词、附录、参考文献、致谢等要目要用文字注明,而题目、著者、引言、正文、结论等要目不要用文字注明,只是作为撰写编排技术报告的步骤。在这些步骤中,有的是可以省略的 (3)技术报告的封面应十分明确地注明标题,占l行2行,标题应直截了当、醒目,例如:“简易数字存储示波器的设计与制作技术报告”。有时可视需要加副标题。标题之下应注明作者、所在单位(班级)、指导教师、日期等。 (4)技术报告的重点是正文部分,也是耗费笔墨最多之处。正文部分应涵盖二级、三级标题(或栏目),VHDL和Verilog HDL比较,VHDL 为类ADA语言,语法/结构比较严格,因而编写出的模块风格比较清晰; 比较适合由较多的设计人员合作完成的特大型项目(一百万门以上) 学术界和高校用的较多 Verilog HDL 较多的第三方工具的支持 语法结构比VHDL简单 为类C语言,较易入门,学习起来比VHDL容易 企业界使用的更加广泛,简单的 Verilog HDL 模块举例,module adder ( count,sum,a,b,cin ); /端口信息 input 2:0 a,b; /输入输出说明 input cin; output count; output 2:0 sum; assign count,sum=a+b+cin; /功能定义 endmodule,模块的结构,从上面的例子可以看出: - Verilog模块结构完全嵌在module和endmodule声明语句之间; - 每个Verilog程序包括四个主要部分:端口定义、I/O说明、内部信号声明、功能定义。,Verilog HDL模块中的功能逻辑表示,在Verilog 模块中有三种方法可以生成逻辑电路: - 用 assign 语句: assign cs = ( a0 end,并行和顺序逻辑关系的表示,如在模块中逻辑功能由下面三个语句块组成 : assign cs = ( a0 end 三条语句是并行的,它们产生独立的逻辑电路; 而在 always 块中: begin 与 end 之间是顺序执行,Verilog模块中的信号,只有两种主要的信号类型: - 寄存器类型: reg 在always 块中被赋值的信号,往往代表 触发器,但不一定是触发器。 - 连线类型: wire 用 assign 关键词指定的组合逻辑的信号 或连线,Verilog中两种不同的赋值语句,非阻塞(non-blocking) 赋值语句: always (posedge clk) begin b = a ; c = b; end,clk,DFF,c,D,Q,D,Q,a,b,DFF,Verilog中两种不同的赋值语句,阻塞(blocking) 赋值语句: always (posedge clk) begin b = a ; c = b; end,clk,DFF,c,D,Q,a,b,两种不同的赋值语句区别要点,非阻塞(non-blocking) 赋值语句 ( b= a): - 块内的赋值语句同时赋值; - b 的值被赋成新值 a 的操作, 是与块内其他 赋值语句同时完成的; - 一般在时序逻辑的模块中使用非阻塞赋值。 阻塞(blocking) 赋值语句 ( b = a): - 完成该赋值语句后才能做下一句的操作; - b 的值立刻被赋成新值 a; - 一般在组合逻辑的模块中使用阻塞赋值。,组合逻辑设计要点,组合逻辑的两种Verilog HDL表示: -用 assign 语句: assign q = (al=1?) d : 0 ; -用 always 块: always (al or d) begin if (al=1) q = d ; else q = 0; end,时序逻辑设计要点,时序逻辑的Verilog HDL表示: - 用 always: 如: always (posedge clock) begin if(!reset) do_reset; else case(state) state_1: do_state_1; state_2: do_state_2; state_3: do_state_3; state_4: do_state_4; state_5: do_state_5; default: state =xx; end,语法详细讲解 空格和注释,Verilog 是一种格式很自由的语言。 空格在文本中起一个分离符的作用, 别的没有其他用处。 单行注释符用 /* 与C 语言一致 多行注释符用 /* - */ 与C 语言一致,语法详细讲解 数值,Verilog 语言中数值表示: 可以标明位数也可以不标明位数,表示方法: 其中表明该数用二进制的几位来表示 可以是二(b)、八(o)、十(d)或 十六(h)进制 可以是所选基数的任何合法的值包括 不定值 x 位和高阻值 z。 如:64hff01 8b1101_0001 h83a(位数默认为32位),常数-参数类型parameter,常用参数来声明运行时的常数。 举例说明: module md1(); parameter s0=2b00,s1=2b01,s2=2b10,s3=2b11; . always (state) case(state) s0: s1: s2: s3: default: endcase endmodule,标识符,所谓标识别符就是用户为程序描述中的Verilog 对象所起的名字。 标识符必须以英语字母(a-z, A-Z)起头,或者用下横线符( _ )起头。其中可以包含数字、$符和下横线符。 标识符最长可以达到1023个字符。 模块名、端口名和实例名都是标识符。 Verilog语言是大小写敏感的,因此sel 和 SEL 是两个不同的标识符。,合法的: shift_reg_a busa_index bus263,非法的: 34net /不能用数字开头 a*b_net /不能含有非字母符号* n263 /不能含有非字母符号,Verilog 是大小写敏感的。所有的Verilog 关键词都是小写的。,操作符,单目: -符号取反,!逻辑取反,按位取反,&缩位与,&缩位与非,缩位或,|缩位或非,缩位异或,缩位同或 双目:*乘,/除,%取余,+加,-减,右移,大于,=大于 等于,=等于,!=不等于,=严格等于,!=严格不等于,&按位与,&按位与非,按位异或,按位同或,|按位或,|按 位或非,&逻辑与,|逻辑或; 三目:?:条件,设计示例一,用门级结构描述D触发器:,设计示例一,module flop(data,clock,clear,q,qb); input data,clock,clear; output q,qb; nand #10 nd1(a,data,clock,clear), nd2(b,ndata,clock), nd4(d,c,b,clear), nd5(e,c,nclock), nd6(f,d,nclock), nd8(qb,q,f,clear); nand #9 nd3(c,a,d), nd7(q,e,qb); not #10 iv1(ndata,data), iv2(nclock,clock); endmodule,设计示例二,由已设计的模块来构成高一级的模块,设计示例二,module hardreg(d,clk,clrb,q); input clk,clrb; input3:0 d; output3:0 q; flop f1(d0,clk,clrb,q0,), f2(d1,clk,clrb,q1,), f3(d2,clk,clrb,q2,), f4(d3,clk,clrb,q3,); endmodule,Verilog HDL 设计示例三,有限状态机的设计,- 有限状态机是由寄存器组和组合逻辑构成的 硬件时序电路; - 其状态(即由寄存器组的1和0的组合状态所 构成的有限个状态)只能在同一时钟跳变沿 的 情况下才能从一个状态转向另一个状态; - 究竟转向哪一状态不但取决于各个输入值, 还取决于当前状态。 - 状态机可用于产生在时钟跳变沿时刻开关的 复杂的控制逻辑,是数字逻辑的控制核心。,设计示例三 (续),设计示例三 (续),module fsm(Clock,Reset,A,F,G); input Clock,Reset,A; output F,G; reg F,G; reg 1:0 state ; parameter Idle=2b00,Start=2b01, Stop=2b10,Clear=2b11; always (posedge Clock) if (!Reset) begin state=Idle;F=0;G=0; end else,case (state) idle: begin if (A) state=Start; G=0; end start: if(!A) state=Stop; Stop: begin if (A) state=Clear; F=1; end Clear: begin if (!A) state =Idle; F=0; G=1; end endcase endmodule,设计示例三 (续),还可以用另一个Verilog HDL模型来表示同一个有限状态,见下例: Module fsm(Clock,Reset,A,F,G); input Clock, Reset, A; output F,G; reg F,G; reg 3:0 state ; parameter Idle=4b1000,Start=4b0100, Stop=4b0010,Clear=4b0001; always (posedge clock) if (!Reset) begin state=Idle;F=0;G=0; end,else case(state) Idle: begin if (A) state=Start; G=0; end Start:if(!A)state=Stop; Stop:begin if(A)state=Clear; F = 1; end Clear: begin if (!A) state =Idle; F=0; G=1; end default: state =Idle; endcase endmodule,设计示例三 (续),我们还可以用另一种风格的Verilog HDL模型来表示同一个有限状态。在这个模型中,我们把用always语句在时钟沿触发条件下的状态变化放在一个独立的块中, 而把在状态控制下的两个开关分两个独立的组合逻辑always块来描述。见下例: module fsm(Clock,Reset,A,F,G); input Clock,Reset,A; output F,G; reg 1:0 state ; r

温馨提示

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

最新文档

评论

0/150

提交评论