电子cad实习报告及数字逻辑课程设计报告-多功能数字钟_第1页
电子cad实习报告及数字逻辑课程设计报告-多功能数字钟_第2页
电子cad实习报告及数字逻辑课程设计报告-多功能数字钟_第3页
电子cad实习报告及数字逻辑课程设计报告-多功能数字钟_第4页
电子cad实习报告及数字逻辑课程设计报告-多功能数字钟_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

电子CAD实习报告一、软件简介-3-二、实习目的-4-三、实习要求-4-四、实习内容-5-五、实习总结-8-六、参考文献-9-一、软件简介电子工作平台ElectronicsWorkBench(EWB),现称为Multisim。2006年推出的Multisim9.0软件是加拿大InteractiveImageTechnologies公司(该公司现属于NI)于20世纪80年代末,90年代初推出的电子电路仿真的虚拟电子工作台软件。它具有这样一些特点:采用只管的图形界面创建电路,在计算机屏幕上模仿真实验室工作台,创建电路需要的元器件,电路仿真需要的测试仪器均可直接从屏幕上选取,操作方便。Multisim提供的虚拟仪器的控制面板外形和操作方式都与实物相似,可以实时显示测量结果。Multisim具有强大的电路分析功能,提供了直流分析、交流分析、瞬时分析、傅立叶分析、传输函数分析等19种分析功能。作为设计工具,它可以同其他流行的电路分析、设计和制板软件交换数据。Multisim还是一个优秀的电子技术训练工具,利用它提供的虚拟仪器可以用比实验室种更灵活的方式进行电路试实验,仿真电路的实际运行情况,熟悉常用电子仪器测量方法。这里我们主要学习Multisim软件的初步知识、基本操作方法、电路图的绘制、虚拟仪器使用及基本分析方法。二、实习目的①、初步掌握Multisim9.0仿真软件的使用方法。②、学习在Multisim9.0仿真软件工作平台上测试单级共射放大电路的静态工作点、电压放大倍数和输入、输出电阻;以及对电路进行瞬态分析的方法等等。三、实习要求①、学会Multisim9.0仿真软件的使用及测试电路的方法,②、掌握模拟电路的静态和动态测试方法。实习内容设计一个基本共射极放大电路,设Ucc=12v,β=40,IBQ=40μA,Au=-92。根据以上要求,设计并选取电路元件参数,是放大器能够不失真的放大常用的正弦波信号,要求对电路进行静态和动态的分析。(1)静态分析:则ICQ≈IEQ=βIBQ=40×40μA=1.6mA上偏电阻Rb的阻值会影响静态工作点,工作点高会产生饱和失真,静态工作点低会产生截止失真。Rb=(Vcc-0.7)V/40μA≈300KΩRbe=200Ω+(40+1)(26/1.6mA)≈865Ω(2)动态分析Au=-β(Rc∥RL)/rbe=-92,则Rc∥RL≈2KΩ。取Rc=3KΩ,则RL=6KΩ。C:C1、C2一般选取10-50μF如图为单极共射放大电路电路图:如图为Multisim软件电路性能仿真数据波形测量图:设计一个积分运算电路,用以将方波信号转换成三角波。技术要求:输入信号为U=±4V,周期T=1ms;要求输出波形与输入信号同相;幅度Uop-p≥2/3Uip-p;输入电阻Ri≥10KΩ。如图为方波信号转换三角波电路图:如图为Multisim软件电路性能仿真数据波形测量图:设计一个运算电路,实现Uo=3Ui1-2Ui2运算关系。电路图由两级放大电路构成的减法器,参数选取:已知Uo=(RF1*RF2/R1*R2)Ui1-(RF2/R3)Ui2R5=R1∥RF1R6=R2∥R3∥RF2取RF2=40KΩ则R3=20KΩ所以40RF1/R1*R2=3令R1=R1=20KΩ则RF1=30KΩ如图为两级放大电路构成的减法器:如图为Multisim软件电路性能仿真数据波形测量图:五、实习总结在这一周的实习中,让我体会到Multisim9.0仿真软件的强大仿真功能,本来对模电知识的浅显理解和模棱两可,通过对电路的仿真可以得到更深一步的理解。经过一周的体验让我喜欢上了Multisim9.0仿真软件的模拟。而且从总学到了好多好多东西,当然还有很多根本就没有理解透的地方,但我相信,这次实习后,我的兴趣会让我继续去了解、继续去学习这一门神奇的课程。同时这款软件会为我们以后学习电路理论和模拟电子,数字电子等科目时做出巨大贡献,一定能让我们受益匪浅。实习过程中,我了解到Multisim9.0仿真软件的几大主要软件的功能及特点,尤其是Multisim9.0仿真软件的使用方法。初步学会各种电路图的绘制、分析过程。基本上可以轻松地完成一个电路和系统的设计任务。实习中,我们每一个同学都会为了一个模拟电路的仿真失败而苦恼,为了一个模拟电路的仿真成功而高兴。同时,大家一起讨论,互相帮助,也促进了同学之间的合作默契,我相信,在未来的大学两年里,我们的友谊只会更坚固,而这次实习也起着一定的作用。我们就是互助的团体。加油!总之,在这一次实习中,我们都获得了我们应该得到的知识和道理,我们在实习中也提高了自己的实践能力,学以致用就是硬道理,这次实习对于我们每个人来说都是成功的。六、参考文献[1]周维芳.电子技术实验[M].第一版.成都:西南交通大学出版社,2012.[2]康华光.电子技术基础[M].第五版.北京:高等教育出版社,2005.[3]赵莹.电子系统实习教程[M].第一版.北京:中国电力出版社,2012.JIANGSUUNIVERSITY数字逻辑课程设计-多功能数字钟学院名称:计算机科学与通信工程专业班级:通信学生姓名:学生学号:指导老师:完成日期:多功能数字钟课程设计实验报告实验目的:学会应用数字系统设计方法进行电路设计;进一步提高quartusII9.0软件的开发应用能力;培养学生书写综合实验报告的能力。实验要求:根据实验任务,选择最佳设计方案,综合运用quartusII9.0软件的各种设计方法设计出层次分明、结构清楚、电路优化、VHDL语言描述简洁的完整设计文件。通过仿真直至下载来验证设计的正确性。实验任务及要求能进行正常的时、分、秒计时功能用M6M5做24小时计数器的显示器;用M4M3做60分钟计数器的显示器;用M2M1做60秒钟计数器的显示器。能利用实验系统上的按键实现“校时”、“校分”功能按下“SA”键时,计时器迅速递增,并按24小时循环,计满23小时后再回00;按下“SB”键时,计时器迅速递增,并按60分钟循环,计满59分钟后再回00;但不向高位进位。按下“SC”键后,秒清零。要求按下“SA”和“SB”均不会产生数字跳变(“SA”、“SB”按键是有抖动的,必须地“SA”、“SB”进行消抖处理,消抖电路用D触发器构成。原理:一个触发器CP(64HZ)内,屏蔽所有的抖动脉冲)。计时(24进制计数器),计分(60进制计数器)、计秒(60进制计数器)模块可由10进制计数器连接构成,也可用VHDL语言完成(可以参考教材P341,例8.2.1多功能电子钟的设计)。10进制计数器需自己设计(用VHDL语言,与所做实验74160计数器相同),不能调用系统库。其他如分频电路、提供报时控制信号、闹时电路等模块用VHDL语言实现。能利用实验板上的扬声器作整点报时当计时到达59’50”、51”、52”、53”、54”、55”、56”、57”、58”、59”鸣叫,鸣叫声频可定为500HZ;到达00分00秒时为最后一声整点报时。整点报时的频率可定为1KHZ。报时信号从ISP1032的PIN68输出,PIN68与扬声器的输入电路相连,激励扬声器;闹时闹时的最小时间间隔为十分钟。闹时长度为一分钟。闹时声响可以是单频。闹时时声响也可以是双频交替的警笛声。使用quartusII9.0软件设计符合上述功能的多功能数字钟,并用层次化设计方法设计该电路。报时功能。闹时功能用功能仿真的方法验证,可通过观察有关波形确认电路设计是否正确。7.使用设计思路层次化的思想:计时(间)模块、时间校对模块、报时模块、分频模块、动态显示模块完成全部电路设计后在EP1KTC144-3实验系统上下载,验证设计的正确性。四.顶层图及相关模块说明: 1.顶层图:说明:程序下载后自动进入计时状态,sa,sb,sc可分别调时,分,秒。2.各模块说明:(1)进制模块:1.十进制源程序:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityls160isport(data:instd_logic_vector(3downto0);clk,ld,p,t,clr:instd_logic;count:bufferstd_logic_vector(3downto0);tc:outstd_logic);endls160;architecturebehaviorofls160isbegintc<='1'when(count="1001"andp='1'andt='1'andld='1'andclr='1')else'0';cale:process(clk,clr,p,t,ld)beginif(rising_edge(clk))thenif(clk='1')thenif(ld='1')thenif(p='1')thenif(t='1')thenif(count="1001")thencount<="0000";elsecount<=count+1;endif;elsecount<=count;endif;elsecount<=count;endif;elsecount<=data;endif;elsecount<="0000";endif;endif;endprocesscale;endbehavior;十进制生成器件2.二十四进制:电路图:生成器件:3.六十进制:电路图:生成器件:模块说明:此计数器由两个十进制计数器构成,片一的进位TC独立与片二的P,T连在一起,并行连接成一百进制计数器,片一的P,T接高电平,两片的CLK都接在同一输入上,形成异步置零。片一上的AD,片二上的AC接入同一与非门,再接到两片的LD上。H[3…0]构成十位,L[3…0]构成个位。(2)DTSM模块:dtsh源程序:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entitydtsmisport(clk:instd_logic;s:instd_logic_vector(7downto0);f:instd_logic_vector(7downto0);m:instd_logic_vector(7downto0);selout:outstd_logic_vector(5downto0);segout:outstd_logic_vector(6downto0));enddtsm;architectureaofdtsmissignalnumber:std_logic_vector(3downto0);signalsel:std_logic_vector(5downto0);signalseg:std_logic_vector(6downto0);signalq:std_logic_vector(2downto0);begina:process(clk)beginif(clk'eventandclk='1')thenq<=q+1;endif;endprocessa;process(q)BeginIcaseqiswhen"000"=>sel<="000001";when"001"=>sel<="000010";when"010"=>sel<="000100";when"011"=>sel<="001000";when"100"=>sel<="010000";when"101"=>sel<="100000";whenothers=>sel<="000000";endcase;endprocess;processbeginifsel="000001"thennumber<=m(3downto0);elsifsel="000010"thennumber<=m(7downto4);elsifsel="000100"thennumber<=f(3downto0);elsifsel="001000"thennumber<=f(7downto4);elsifsel="010000"thennumber<=s(3downto0);elsifsel="100000"thennumber<=s(7downto4);elsenumber<="1111";endif;endprocess;process(number)begincasenumberiswhen"0000"=>seg<="0111111";when"0001"=>seg<="0000110";when"0010"=>seg<="1011011";when"0011"=>seg<="1001111";when"0100"=>seg<="1100110";when"0101"=>seg<="1101101";when"0110"=>seg<="1111101";when"0111"=>seg<="0000111";when"1000"=>seg<="1111111";when"1001"=>seg<="1101111";whenothers=>seg<="0000000";endcase;endprocess;selout<=sel;segout<=seg;enda;生成器件:端口说明:s,f,m分别为时、分、秒的输入端,定义为std_logic_vector(7downto0);segout为七端显示管的输出,定义为std_logic_vector(6downto0);selout为扫描地址端,定义为std_logic_vector(5downto0),某一时刻只有一个为1,对应的数组号即为当前扫描的数码管的编号。功能实现:定义一个std_signa_vector(2downto0)变量q,它在0至5之间不断的循环,用来指示当前扫描的哪一根管,循环用语句ifq>=5thenq<="000";elseq<=q+1; endif;实现。再定义一个类型为std_logic_vector(5downto0)的sel信号,它用来产生一个长度为6的数,该数在同一时刻只有一位是高电平表示正在扫描该显示管,在进程结束时它的值将赋给selout输出。定义一个std_logic_vector(6downto0)类型的seg,用来存放将由四位bcd码编码而来的七段显示码。最后在进程中定义一个std_logic_vector(3downto0)类型的number变量,用来存放时、分、秒的高位或低位,然后将该数编码成七段显示码,并赋给seg信号。具体算法如下:建立一个以clk脉冲为敏感变量的进程,先判断是否是clk的高电平脉冲,若不是则什么也不执行,若是高电平脉冲,则执行以下程序。P加1,用case语句根椐p的值,给number赋予当前要扫描的数码管的值,用case语句根椐number的值编译成对应的七段显示管的值并赋给seg,当进程结束时把seg的值赋给segout,把sel的值赋给selout,然后由这两个端口输出。(3)分频模块:分频器源程序:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entityfryisport(clk:instd_logic;hz512:outstd_logic;hz256:outstd_logic;hz64:outstd_logic;hz4:outstd_logic;hz1:outstd_logic);endfry;architecturefoffryissignalq:std_logic_vector(9downto0);beginprocess(clk)beginifclk'eventandclk='1'thenq<=q+1;endif;endprocess;hz512<=q(0);hz256<=q(1);hz64<=q(3);hz4<=q(7);hz1<=q(9);endf;生成器件:(4)报时模块:报时器源程序:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entityalertis port(m1,m0,s1,s0:instd_logic_vector(3downto0); sig500,sig1k:outstd_logic);endalert;architectureaofalertissignalq:std_logic_vector

温馨提示

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

评论

0/150

提交评论