EDA原理与应用.ppt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 原理 应用
- 资源描述:
-
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,EDA原理与应用,EDA原理与应用EDA原理与应用 本章给出了PLD器件在复杂数字系统的典型应用实例-数字时钟的设计。数字时钟的设计也是PLD在复杂数字系统的经典应用。,该章首先介绍了数字时钟的功能要求和整体结构;随后具体介绍了数字时钟的模块设计,其中包括数字时钟控制信号和控制模块的具体结构。本章最后详细描述了设计的具体实现过程,具体包括数字时钟的计数模块设计、计数时钟及扫描时钟设计和显示控制模块设计。数字时钟设计-本章概要第11章第十一章,本章给出了,PLD,器件在复杂数字系统的典型应用实例,-,数字时钟的设计。数字时钟的设计也是,PLD,在复杂数字系统的经典应用。,该章首先介绍了数字时钟的功能要求和整体结构;随后具体介绍了数字时钟的模块设计,其中包括数字时钟控制信号和控制模块的具体结构。本章最后详细描述了设计的具体实现过程,具体包括数字时钟的计数模块设计、计数时钟及扫描时钟设计和显示控制模块设计。,数字时钟设计,-,本章概要,第,11,章,第十一章,数字钟时常见的一种计数装置,数字钟以,1Hz,的频率工作。该设计完成数字钟的运行和显示。其主要功能有:,数字钟以,1Hz,的频率工作,其输入频率为,1MHz,。,数字钟显示时、分、秒信息。这些显示信息在,6,个,7,段数码管上完成。,通过按键设置时、分信息。并且具有对数字钟的复位功能。,复位键将时、分、秒清零,并做好重新计数的准备。,按键具有预置时、分的功能。分别对当前的时和分信息做递增设置和递减设置。,第十一章,数字时钟设计,-,数字时钟的功能要求,第十一章,数字时钟设计,-,数字时钟的结构,第十一章,数字时钟设计,-,数字时钟的结构,图,11.1,给出了该数字钟的结构图。从图中可以看到,数字钟由:,复位按键(,reset,);,小时递增按键(,hour_inc,);,小时递减按键(,hour_dec,);,分钟递增按键(,min_inc,);,分钟递减按键(,min_dec,);,时钟输入;,7,段,LED,显示,LED,管选择信号线,sel,;,LED,码控制信号线,(segment),该数字钟的控制部分由,PLD,芯片完成。该芯片的输入和输出接口由下面信号组成:,输入信号:,复位信号(,reset,),时钟输入信号(,clk,),小时递增信号(,hour_inc,),小时递减信号,(,hour_dec,),分钟递增信号(,min_inc,),分钟递减信号(,min_dec,),数字时钟设计,-,数字时钟的信号,第十一章,输出信号:,LED,选择信号(,sel,),LED,码显示控制信号,(segment),数字时钟设计,-,数字时钟的信号,第十一章,该设计分成下面四个模块:定时时钟模块、扫描时钟模块、按键处理模块、定时计数模块和显示控制模块。图,11.2,给出了这几个模块之间的信号连接关系。,第十一章,数字时钟设计,-,控制模块结构,1,、按键处理模块,由于,VHDL,语言的规则,将按键的处理和定时模块设计在一起。为了描述清楚,将对按键的处理进行说明。在该设计中,采用异步复位电路方式。当复位信号低有效时,计数器停止计数,时、分、秒清零。,对于小时的递增、递减按键操作,通过一个,1Hz,的计数时钟采样。图,11.3,给出了递增、递减的操作时序。,第十一章,数字时钟设计,-,控制模块结构,第十一章,数字时钟设计,-,控制模块结构,当,1Hz,的,div_clk,信号的上升沿到来时,检测,hour_inc,和,hour_dec,按键,图中的虚线表示在时钟的上升沿对按键信号进行采样。当,hour_inc,或,hour_dec,按键低有效时,对小时进行递加或递减操作。,对于分钟的递加、递减按键操作,也是通过一个,1Hz,的计数时钟采样。原理同图,11.4,。,数字时钟设计,-,控制模块结构,第十一章,2,、定时时钟模块,定时时钟模块其作用就是将外部提供的,1MHz,的时钟,通过分频器后向模块内的定时计数模块提供,1Hz,的定时计数时钟。在设计定时时钟模块时,采用同步计数电路。,数字时钟设计,-,控制模块结构,第十一章,3,、扫描时钟模块,扫描时钟模块的作用就是通过对,1MHz,的分频处理后,向显示控制模块提供合适的显示扫描时钟,该时钟必须经过合理的设计,才能保证,7,段数码显示的稳定。在设计扫描时钟模块时,采用同步计数电路。,数字时钟设计,-,控制模块结构,第十一章,4,、定时计数模块,定时计数模块是该设计中最重要的一部分,在设计该模块时,为了便于后续显示控制模块的设计,将时、分、秒进行分离,即小时分成了小时的十位和个位分别处理,分钟分成了分钟的十位和个位分别处理。秒分成了秒的十位和个位分别处理。在该设计中,采用,24,小时计数模式。,例如:,13,:,28,:,57,。,13,为小时的表示,,1,为小时的十位,,3,为小时的个位;,28,为分钟的表示,,2,为分钟的十位,,8,为分钟的个位;,57,为秒的表示,,5,为秒的十位,,7,为秒的个位。,数字时钟设计,-,控制模块结构,第十一章,秒的个位计数从,0-9,,即十进制计数。当秒的个位计数到,9,后,准备向秒的十位进位。秒的十位计数从,0-5,,即六进制计数。当秒的十位计数到,5,后,准备向分的个位进位。,分钟的个位计数从,0-9,,即十进制计数。当分钟的个位计数到,9,后,准备向分钟的十位进位。分钟的十位计数从,0-5,,即六进制计数。当分钟的十位计数到,5,后,准备向小时的个位进位。,对于小时的处理比较复杂,小时的十位和个位之间存在下面的关系:,当小时的十位为,0,或,1,时,小时的个位可以计数范围为,0-9,,即十进制计数;,当小时的十位为,2,时,小时的各位可以计数的范围为,0-3,,即四进制计数;,数字时钟设计,-,控制模块结构,第十一章,数字时钟设计,-,控制模块结构,第十一章,5,、显示控制模块,显示控制模块主要作用是在,7,段数码管上正确的显示,0-9,的数字。,sel,三位,LED,选择线和,3-8,译码器相连,数字时钟设计,-,控制模块结构,第十一章,整个工程窗口:含设计时钟源文件、仿真测试文件、用户约束文件,第十一章,数字时钟设计,-,控制模块结构,数字时钟设计,-,行为仿真结果,第十一章,数字时钟设计,-,布局布线仿真结果,第十一章,选择“,project-new source”,;,设置实现约束文件类型,Implementation Constraints File,,文件名,clock,;,单击“下一步”,选中与“,clock”,关联;,单击“下一步”,单击“完成”;,选中“,clcok.ucf,”,文件,在,Process view,窗口双击“,Assign package pins”,,出现,Xinlinx,PACE,窗口界面;,数字时钟设计,-,用户约束文件设置,第十一章,数字时钟设计,-Xinlinx PACE,窗口界面,第十一章,6,.,单击,Design Object List-IO Pins,窗口中每一信号后的,Loc,,可以输入对应的,FPGA,引脚,形式如,P78,。设置完成,保存文件,退出,Xilinx PACE,窗口,完成引脚分配。,数字时钟设计,-,用户约束文件设置,第十一章,数字时钟设计,-,引脚分配文件,第十一章,1.,首先选中“,Generate Programming File”,右键单击,单击“,Properties”,;,2.,选中“,Process Properties”,窗口下的“,Startup options”,标签,设置“,FPGA start-up clock”,为,JTAG,,单击“确定”;,数字时钟设计,-,编程下载验证,第十一章,数字时钟设计,-,编程下载验证,第十一章,3.,在如下图所示的“,Process for,source:clock,-behavioral”,中,双击,Configure Device(,iMPACT,).,数字时钟设计,-,编程下载验证,第十一章,4.,系统自动进行综合、实现过程,若没有错误,将出现如下窗口,单击“下一步”,单击“完成”;,数字时钟设计,-,编程下载验证,第十一章,5.,出现一个确认窗口,告知检测到一个器件,单击“确定”按钮;,6.,选择刚刚生成的,bit,文件,单击“打开”;,7.,可能会出现警告,单击“确定”;,8.,此时界面中,JTAG,链上只有一个器件,型号为,XC3S400,,单击鼠标右键,单击“,Program”,,完成对器件编程,进行实际验证。,数字时钟设计,-,编程下载验证,第十一章,library IEEE;,use IEEE.STD_LOGIC_1164.ALL;,use IEEE.STD_LOGIC_ARITH.ALL;,use IEEE.STD_LOGIC_UNSIGNED.ALL;,-,实体定义部分,entity clock is,port(,clk,:in,std_logic,;,rst,:in,std_logic,;,inc_min,:in,std_logic,;,sub_min,:in,std_logic,;,inc_hour,:in,std_logic,;,sub_hour,:in,std_logic,;,sel,:out std_logic_vector(2,downto,0);,q :out std_logic_vector(7,downto,0);,end clock;,数字时钟设计,-,主程序,第十一章,-,信号定义:,architecture Behavioral of clock is,signal sec_counter1:std_logic_vector(3 downto 0);,signal sec_counter2:std_logic_vector(3 downto 0);,signal min_counter1:std_logic_vector(3 downto 0);,signal min_counter2:std_logic_vector(3 downto 0);,signal hour_counter1:std_logic_vector(3 downto 0);,signal hour_counter2:std_logic_vector(3 downto 0);,signal divcounter:std_logic_vector(3 downto 0);,signal div_clk:std_logic;,signal scancounter:std_logic_vector(1 downto 0);,signal scan_clk:std_logic;,signal scan_out:std_logic_vector(2 downto 0);,signal secseg1,secseg2,minseg1,minseg2,hourseg1,hourseg2:std_logic_vector(7downto 0);,begin,数字时钟设计,-,主程序,第十一章,-,计数时钟,对外部输入时钟分频,此处只适用于仿真,实际进行时间计数时,分频后时钟应该满足,1HZ,。,process(rst,clk,),begin,if(rst,=0)then,divcounter,=0000;,div_clk,=0;,elsif(rising_edge(clk,)then,if(divcounter,=1111)then,divcounter,=0000;,div_clk,=not,div_clk,;,else,divcounter,=divcounter+1;,end if;,end if;,end process;,数字时钟设计,-,主程序,第十一章,-,仿真时数码管扫描时钟,实际中需根据具体情况进行调解时钟频率,process(rst,clk),begin,if(rst=0)then,scancounter=00;,scan_clk=0;,elsif(rising_edge(clk)then,if(scancounter=11)then,scancounter=00;,scan_clk=not scan_clk;,else,scancounter=scancounter+1;,end if;,end if;,end process;,数字时钟设计,-,主程序,第十一章,-,时钟计数部分主进程,-,时钟复位,clock:process(div_clk,rst),begin,if(rst=0)then,sec_counter1=X0;,sec_counter2=X0;,min_counter1=X0;,min_counter2=X0;,hour_counter1=X0;,hour_counter2=X0;,数字时钟设计,-,主程序,第十一章,-,手动调分,递增,elsif(rising_edge(div_clk)then,if(inc_min=0)then,if(min_counter1=X9)then,min_counter1=X5)then,min_counter2=X0;,else,min_counter2=min_counter2+1;,end if;,else,min_counter1=min_counter1+1;,end if;,数字时钟设计,-,主程序,第十一章,-,手动调分,递减,elsif(sub_min=0)then,if(min_counter1=X0)then,min_counter1=X9;,if(min_counter2=X0)then,min_counter2=X5;,else,min_counter2=min_counter2-1;,end if;,else,min_counter1=min_counter1-1;,end if;,数字时钟设计,-,主程序,第十一章,-,手动调时,增时,elsif(inc_hour=0)then,if(hour_counter2=X2)then,if(hour_counter1=X3)then,hour_counter1=X0;,hour_counter2=X0;,else,hour_counter1=hour_counter1+1;,end if;,else,if(hour_counter1=X9)then,hour_counter1=X0;,hour_counter2=hour_counter2+1;,else,hour_counter1=hour_counter1+1;,end if;,end if;,数字时钟设计,-,主程序,第十一章,-,手动调时,减时,elsif(sub_hour=0)then,if(hour_counter1=X0)then,if(hour_counter2=X0)then,hour_counter1=X3;hour_counter2=X2;,else,hour_counter2=hour_counter2-1;,hour_counter1=X9;,end if;,else,hour_counter1=X9)then,sec_counter1=X5)then,sec_counter2=X9)then,min_counter1=X5)then,min_counter2=X0;,if(hour_counter2=X2)then,if(hour_counter1=X3)then,hour_counter1=X0;,hour_counter2=X0;,数字时钟设计,-,主程序,第十一章,else,hour_counter1=hour_counter1+1;,end if;,else,if(hour_counter1=X9)then,hour_counter1=X0;,hour_counter2=hour_counter2+1;,else,hour_counter1=hour_counter1+1;,end if;,end if;,else,min_counter2=min_counter2+1;,end if;,数字时钟设计,-,主程序,第十一章,else,min_counter1=min_counter1+1;,end if;,else,sec_counter2=sec_counter2+1;,end if;,else,sec_counter1=sec_counter1+1;,end if;,end if;,end if;,end process clock;,数字时钟设计,-,主程序,第十一章,-,生成扫描时钟,process(rst,scan_clk),begin,if(rst=0)then,scan_out=000;,elsif(rising_edge(scan_clk)then,if(scan_out=101)then,scan_out=000;,else,scan_out q=secseg1;sel q=secseg2;sel q=minseg1;sel q=minseg2;sel q=hourseg1;sel q=hourseg2;sel q=11111111;sel secseg1 secseg1 secseg1 secseg1 secseg1 secseg1 secseg1 secseg1 secseg1 secseg1 secseg1 secseg2 secseg2 secseg2 secseg2 secseg2 secseg2 secseg2 minseg1 minseg1 minseg1 minseg1 minseg1 minseg1 minseg1 minseg1 minseg1 minseg1 minseg1 minseg2 minseg2 minseg2 minseg2 minseg2 minseg2 minseg2 hourseg1 hourseg1 hourseg1 hourseg1 hourseg1 hourseg1 hourseg1 hourseg1 hourseg1 hourseg1 hourseg1 hourseg2 hourseg2 hourseg2 hourseg2 clk,rst=rst,inc_min=inc_min,sub_min=sub_min,inc_hour=inc_hour,sub_hour=sub_hour,sel=sel,q=q,);,数字时钟设计,-,仿真文件,第十一章,-,仿真测试输入波形,PROCESS,BEGIN,clk=0;,wait for 10ns;,clk=1;,wait for 10ns;,END PROCESS;,PROCESS,BEGIN,rst,=0;,wait for 30ns;,rst,=1;,wait for 1ms;,END PROCESS;,数字时钟设计,-,仿真文件,第十一章,-,仿真测试输入波形,process,begin,inc_hour=1;sub_hour=1;inc_min=1;sub_min=1;,wait for 100ns;,inc_hour=0;,wait for 100ns;,inc_hour=1;sub_hour=0;,wait for 100ns;,sub_hour=1;inc_min=0;,wait for 100ns;,inc_min=1;sub_min=0;,wait for 100ns;,sub_min=1;,wait for 1ms;,end process;,END;,数字时钟设计,-,仿真文件,第十一章,人有了知识,就会具备各种分析能力,,明辨是非的能力。,所以我们要勤恳读书,广泛阅读,,古人说“书中自有黄金屋。,”通过阅读科技书籍,我们能丰富知识,,培养逻辑思维能力;,通过阅读文学作品,我们能提高文学鉴赏水平,,培养文学情趣;,通过阅读报刊,我们能增长见识,扩大自己的知识面。,有许多书籍还能培养我们的道德情操,,给我们巨大的精神力量,,鼓舞我们前进,。,展开阅读全文

咨信网声明:本文档由用户上传并分享,仅供学习交流、研究之用,未经授权,严禁复制、发行、汇编、翻译或网络传播等,侵权必究。
咨信网小贴示:
1、浏览或下载可查看了解,请点击【咨信网告知】。
2、下载文件中如有侵权或不适当内容,将立即纠正。
3、如果因为网速或其他原因下载失败请重新下载,重复下载[60天内]不扣币。
4、开具发票登录电脑端申请,请点击【索取发票】。
咨信网客服组:【微信客服】
1、浏览或下载可查看了解,请点击【咨信网告知】。
2、下载文件中如有侵权或不适当内容,将立即纠正。
3、如果因为网速或其他原因下载失败请重新下载,重复下载[60天内]不扣币。
4、开具发票登录电脑端申请,请点击【索取发票】。
咨信网客服组:【微信客服】


EDA原理与应用.ppt
















自信AI助手














微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/14417169.html