EDA实习报告.docx
贵州师范高校学生实习报告科目:EDA实习专业:电气工程及其自动化班级:10电气姓名:李启应学号:1生一个进位信号CF给分钟模块,作为分钟进程的响应信号。秒钟模块YHD1.程序见附录1:仿其波形如下:如IbIM象法IbMIbIM珈笳kr<:三U三叫ITJB即mU三II丁封装如下图:SECONDC1.KCFRESETSECOND!.OUT3.OSECONDXO.OUT2.O分钟的模块:同理于杪钟的模块,设计一个60进制的计数器,以CFM为其时钟信号,每60个CPM后产生一个进位信号CFM给小时模块,作为小时模块进程的响应信号。分钟模块YHD1.程序见附录二:仿真波形如下:HOURC1.KH0UR1.0UT(3.O)RC«CTH0URlO0UT(l.OJ扫描仪模块:在扫描仪内部,有一个3-8译码器的片选信号,当3-8译码器的片选信号为OOO时,片选信号选中7段1.ED模块中的秒的个位,当3-8译码器的片选信号为001时,片选信号选中7段1.ED模块中的秒的十位,当3-8译码器的片选信号为010时,片选信号选中7段1.EI)模块中的分的个位,当3-8译码器的片选信号为OII时,片选信号选中7段1.ED模块中的分的十位,当3-8译码器的片选信号为100时,片选信号选中7段1.l-D模块中的时的个位,当3-8译码器的片选信号为101时,片选信号选中7段1.ED模块中的时的十位,就这样动态扫描,当输入的时钟信号频率很高的时候,就形成了我们的时钟.扫描仪模块VHD1.程序见附录四:封装如下图:综合以上5大模块,把它们用线连接起来就得到我们的总的电路图:如卜.图所示:其工作原理为:扫描仪3-8译码器的片选信号依据时分秒的输入选中7段1.ED模块.然后再由时分杪中产生的3位BCI)码来输出秒的个位,十位、时的个位,十位、小时的个位,十位。12HSKCOM>4.总结:在试盼这两周的时间里,我们做过DC触发器、I)Q触发器、3-8译码器、二选一电路和四选一电路等,最终综合做了数字时钟电路,通过这次实习,我对用VHD1.来编程有了更深的了解,在要编程的时候,我学会了分模块进行,因为一起先的时候设计一个时钟系统比较麻烦,没为分模块之前总是会仃差错,而之后思路就会比较清燧,有明确的方案,在比照书本里的编程规则与语句,就完成f这次的设计,总之就是获益良多.if(second10n="10)lhensecond10n<="000"cf<=':elsesecond10n<=secondl0n+1:endif;elsesecondln<=secondln+1:endif;endif;endprocess;endarchitectureone;useieee.stdjogic_1164.a】l;useieee.std_ogic_unsigned.a1;entityminuteisport(elk.reset:inStd-Iogic;cf:outst<1.ogic;IninUle1.OUt:oUlStd-IOgiJVeCtOr(3downto0);minutelO_out:outStd1.logic.vector(2downtoO):endentityminute;architectureoneofminuteissignalminuteln:std_logic_vector(3downto0);signalm)nutel0n:st(1.logic_vector(2downto0);beginminute1.ot<=<inuteln:minutelO_out<=minulelOn;process(clk,reset)beginif(reset=')thenminuteln<="00(X)"mintel0n<="000"elsif(clk'eventandclk=')thenif(minuteln="100)thenminuieln<="0000"if(minutel0n="10)lhenminutelOn<="OOO"cf<=':elseminuteln<=minuteln+l:endif;elseminuteln<=minute1n+1:endif;endif;endprocess;endarchitectureone:useieee.stdjogic_1164.a】l;useieee.std_ogic_unsigned.a1;entityhourisport(elk.reset:inStd-Iogic;hour1.out:Outstd_logic_vector(3downto0):hour1(1.OUl:oUlsld_logic_vector(ldownto0);endentityhour:architectureoneofhourissignaIhourIn:St(1.IogiC.vector(3downto0):signalhourlOn:std_logic_veclor(1downto0):beginhourl-out<=hourIn:horlO-out<=hourIOn;process(cIk.reset)beginif(reset=')thenhourln<="0000":hourl0n<="00":elsif(clk'eventandclk='l')thenif(hourln="100,or(hourln="0011"andhourl0n="0010")thenhourln<="0000"if(hourIOn="10")thenelsehour10n<=hor10n+1:endif;elsehourln<=hourln+l:endif;endif;endprocess;endarchitectureone;useieee.stdjogic_1164.a】l;useieee.std_ogic_unsigned.a1;useieee.std_logic_arith.au;entitysa<xniaoyiisport(clk:instd.logic:reset:inSI(Uogic;second1,minute1.hour1:instd_logic_vector(3downtoO);second_10.minute_10:inSI(1.logiJVeClOr(2downto0);hour_10:instd_logic_vector(1downto0);dalaoul:oulSl(1.JOgiCJVeCtOr(3downto0);sei:OUIStdJOgiJVeetOr(2downtoO):endentitysa<xniaoyi:architectureoneofsaomiaoyiissignalcount:std_logic_vector(2downtoO):beginsel<=count;process(cIk.reset)beginif(reset=')thcndataout<="0000":elsif(clk,eventandclk='l")thencount<="000"elsecount<=countil:endif;endif;casecountiswhen"000"=>dataout<=secondl;when"OO"=>dataout<=,0,&second.10:when"010"=>dataout<=minutel;when"011"=>dataout<=,0'minute_10;when"100"=>dataout<=hour1;whenothers=>dataot<="00"5hor-10;endcase;endprocess;endarchitectureone;附录五:7段1.ED模块VHD1.程序1.IBRARYIEEE;ISEIEEE.STD_1.0G!C_U64.A1.1.;即TYle(1.7ISPORT(A:INSTDJDGICAECTOR(3ONTO0);1.ED7S:01.ITSTO-1.OGlC-rECiR(6ONTO0);ENDentityled_7:.ARCinTECTllREone(Xled_7ISBEGINPR0CESS(八)BEGINCASEA(3DOWNTO0)ISWHEN"0000"=>1.ED7S<="0111111";X"3F"OWHEN"0001"=>1.ED7S<="0000110":X"06"WHEN"0010"=>1.ED7S<="101101;X"5B"WHEN"0011"=>1.ED7S<=-X"4F"WHEN"0100"=>1.ED7S<="1100110""X"66"WHEX"010=>1.ED7SX"6D"WHEN"0110"=>1.ED7S<="X"7D"WHEX"our=>1.ED7S"0000111"WHEN"1000"=>1.ED7S<=一X"7F"WHEN"1001"=>1.ED7SX"6F"WHENOTHERS=>NU1.1.;ENDCASE:ENDPROCESS;ENDARCHnEeTVREone;