书签 分享 收藏 举报 版权申诉 / 142
上传文档赚钱

类型EDA与电子技术课程设计课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:5191704
  • 上传时间:2023-02-16
  • 格式:PPT
  • 页数:142
  • 大小:2.67MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《EDA与电子技术课程设计课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    EDA 电子技术 课程设计 课件
    资源描述:

    1、教材:EDA与数字系统设计李国丽 朱维勇 栾铭主编l门电路、触发器等称为逻辑器件;l由逻辑器件构成,能执行某单一功能的电路,如计数器、译码器、加法器等,称为逻辑功能部件;l由逻辑功能部件组成的能实现复杂功能的数字电路称数字系统。图0-1 数字系统框图l明确设计要求,确定系统的输入/输出;l确定整体设计方案;l自顶向下(top-down)的模块化设计方法。l选用通用集成电路芯片构成数字系统;l应用可编程逻辑器件实现数字系统;l设计专用集成电路(单片系统)。l应用可编程逻辑器件(Programmable Logic Device PLD)实现数字系统设计,是目前利用EDA(Electronic D

    2、esign Automation)技术设计数字系统的潮流。l这种设计方法以数字系统设计软件为工具,将传统数字系统设计中的搭建调试用软件仿真取代,对计算机上建立的系统模型,用测试码或测试序列测试验证后,将系统实现在PLD芯片或专用集成电路上,这样最大程度地缩短了设计和开发时间,降低了成本,提高了系统的可靠性。l数字集成电路的发展过程:电子管 晶体管 小中规模集成电路(SSI,MSI)大规模集成电路(LSI)超大规模集成电路(VLSIC)具有特定功能的专用集成电路(Application Specific Integrated Circuit ASIC)为使ASIC的设计周期尽可能短,出现了现场可

    3、编程逻辑器件(Field Programmable Logic Device FPLD),其中应用最广泛的当属CPLD和FPGA。CPLD:Complex Programmable Logic Device FPGA:Field Programmable Gate Array 统称为PLD或CPLD/FPGA。l早期:PROM、EPROM、EEPROM l70年代中期:Programmable Logic array PLAl 70年代末:美国MMI公司Programmable array Logic PAL l80年代中期:Altera公司Generic Array Logic GAL 共同

    4、特点:低密度PLD,结构简单,设计灵活,规模小,难以实现复杂的逻辑功能。l80年代中期:Altera公司 Erasable Programmable Logic Device EPLD l1985年:Xilinx公司 Field Programmable Gate Array FPGA l80年代末:Lattice公司提出In System Programmable ISP)技术,相继出现了一系列具备在系统可编程能力的复杂可编程逻辑器件(Complex Programmab1e Logic Device CPLD)。共同特点:高密度、高速度、低功耗结构体系更灵活、适用范围更宽,设计风险为零。l

    5、90年代以后,高密度PLD在生产工艺、器件的编程和测试技术等方面都有了飞速发展,CPLD的集成度一般可达数千甚至上万门。Altera的EPF10K10每片含62000158000个可使用门,重复擦写次数达10万次以上。lPLA、PAL、GAL、EPLD、FPGA、ISP-PLD的基本结构在数字电子技术基础的第八章有介绍专门用于开发FPGA和CPLD的EDA工具分为五个模块:1设计输入编辑器(xilinx的Foundation、Altera的MAX+plus2等);2仿真器(如Mentor公司的ModelSim,Cadence公司的Verilog-XL,NC-Verilog等);3HDL综合器(

    6、Synopsys公司的FPGA Compiler、FPGA Express 等);4适配器(或部局布线器)(如Lattice公司的ispEXPERT 中有自己的适配器);5下载器(编程器)。1、EPF10K10,EPF10K10A等2、MAX7000系列(如MAX7000S中的MAX7128)3、EPM9320等l图形输入方式(.gdf文件);lHDL(Hardware Description Language)语言输入方式 1)VHDL语言(Very High Speed Intergated Circuit Hardware Description Language)2)Verilog H

    7、DL语言设计输入设计输入图形或HDL语言输入编译编译Compiler项目校验、项目校验、仿真仿真Simulate编程或下载编程或下载Program或Configurel进入Windows操作系统,打开MAX+Plus2;l启动FileProjectName 菜单,输入设计文件的名称(给出文件存储路径);l点击AssignDevice菜单,选择器件(EPM7128SLC84-6或EPF10K10LC84-4);l启动FileNew菜单,选择Graphic Editor,打开原理图编辑器;l元器件放置;l在元器件之间添加连线;l添加输入、输出引脚,并给它们命名;l保存原理图。l启动MaxplusI

    8、I/Compiler菜单,选择Start,开始编译;l若电路有错,编译器停止编译,并显示出错信息;l若电路无错,则编译通过,生成.sof、.pof文件,以备硬件下载或编程时用。l注意:编译只对顶层文件进行注意:编译只对顶层文件进行 编译通过后就可进行时序模拟:1、建立波形输入文件:1)打开菜单File/New,选Waveform Editor File(.scf),OK;2)在波形编辑器窗口的Name下单击鼠标右键,出现浮动菜单,选Enter Nodes from SNF出现对话框;3)在Type 区选Inputs和 Outputs,单击 List按钮,可在 其右下方看到设计中的输入输出信号,

    9、单击=可将这些信号选到Selected Nodes&Groups区,OK;4)在菜单File中选 Save。2、编辑输入节点波形:1)在菜单Options中选中Snap to Grid 和Show Grid,并打开 Grid Size设置仿真时间;2)使用绘制图形工具条绘制输入节点波形;3)选File中Save存盘。3、时序模拟:1)在菜单Maxplus2中选Simulator;2)单击Start,开始模拟;3)模拟完毕,单击Open Scf得模拟结果,可对结果进行检查(注意有动态延时和竞争冒险现象)。l启动MaxplusII/Floorplan Editor菜单,则显示该设计项目的管脚分配;

    10、l用户可根据下载板情况,改变管脚分配。l下载板有两种:1.北京理工达胜科技有限公司生产的下载板,芯片管脚与外围信号没有连接,需在实验中由你连接;2.东南大学东讯通生产的DXT-BIII型EDA实验开发系统,芯片管脚与外围信号已连接好,必须根据下表改变管脚分配.图1-2-15 PLD引脚与外部人工连接EPF10K10LC84-4图1-2-16 PLD引脚与外部器件连接锁定图1216 PLD管脚与外部器件连接锁定器件名称器件名称信号名信号名10K10管管脚脚器件名称器件名称信号名信号名10K10管管脚脚输出发光管L12R25数据开关K229输出发光管L12G24数据开关K330输出发光管L1123

    11、数据开关K435输出发光管L1022数据开关K536输出发光管L921数据开关K637输出发光管L819数据开关K738输出发光管L718数据开关K839输出发光管L665数据开关K947输出发光管L564数据开关K1048输出发光管L462数据开关K1149输出发光管L361数据开关K1250输出发光管L260数据开关K1351输出发光管L1G59数据开关K1452输出发光管L1R58数据开关K1553数据开关K128数据开关K1654器件名称器件名称信号名信号名10K10管管脚脚器件名称器件名称信号名信号名10K10管管脚脚数码管M4M4A17扬声器SP27M4B16时钟信号CP11M4C

    12、11时钟信号CP243M4D10数码管M3M3A9M3B8M3C7M3D6数码管M2M2A5M2B3M2C83M2D81数码管M1M1A80M1B79M1C78M1D73l将实验板接口线与计算机并口连接,打开试验箱电源;l启动MaxliusII/Programmer菜单;l如果是第一次使用该软件,启动Options Hardware Setup菜单,在Hardware Type中选择 ByteBlaster(MV)。l Configure即可完成下载。l l若下载后提示下载不成功信息,按以上各步检查是否设置正确,并检查计算机与实验箱硬件连接,排除故障,再次尝试下载;l随时可利用帮助信息(?),

    13、解决疑难问题;l相同名字的导线,在电气上相连(P26);l器件可以旋转;l一组输入或一组输出时,可用BUS(组);l改变管脚后,应再编译一次,再下载。l进入Windows操作系统,打开MAX+Plus2;l启动FileProjectName 菜单,输入设计文件的名称(给出文件存储路径);l点击AssignDevice菜单,选择器件(EPM7128SLC84-6或EPF10K10LC84-4);l启动FileNew菜单,选择Text Editor file,打开原理图编辑器;l键入程序;l在在FileSave as 保存,生成保存,生成.v文件;文件;l以下步骤同图形输入法。有关Verilog

    14、HDL的详细内容参见第三章(P.98)l/*/l/MODULE:adder l/FILE NAME:add.v l/VERSION:v1.0 l/DATE:May 5th,2003 l/AUTHOR:Peter l/CODE TYPE:RTL l/DESCRIPTION:An adder with two inputs(1 bit),one output(2 bits).l/*/lmodule adder(in1,in2,sum);l l input in1,in2;l output 1:0 sum;l wire in1,in2;l reg 1:0 sum;l l always (in1 or

    15、 in2)l begin l sum=in1+in2;l endlendmodule模块名(必须和存储时的名称相同)端口列表说明部分模块主体结束行注释部分模块定义行事件控制的Always语句,一直监测输入信号,只要有变化,就执行下面的块语句。Case语句Case(敏感表达式)值1:块语句1;值2:块语句2;default:块语句n+1;endcaselmodule decoder(out,in);loutput7:0 out;linput2:0 in;lreg7:0 out;lalways(in)lbeginlcase(in)l3d0:out=8b00000001;l3d1:out=8b000

    16、00010;l3d2:out=8b00000100;l3d3:out=8b00001000;l3d4:out=8b00010000;l3d5:out=8b00100000;l3d6:out=8b01000000;l3d7:out=8b10000000;lendcaselendlendmodule d 十进制h 十六进制b 二进制o 八进制lmodule jsq16(q,clk,reset);loutput3:0q;lreg 3:0q;linput clk,reset;lalways(posedge clk or negedge reset)lbeginlif(!reset)q3:0=4b000

    17、0;lelselq3:0=q3:0+4b0001;lendlendmoduleif(表达式)块语句1;else 块语句2;.v文件描述的功能模块可以生成一个符号,放在用户库中,供其它原理图输入文件调用,调用的方法与从器件库中取元器件的方法相同。生成功能模块的方法为:选择菜单filecreate default symbol,经过与编译相同的过程后,生成的功能模块被放入用户库,l星期一上午讲课,完成非门下载 先在先在F盘中设置一个自己的文件夹,例:盘中设置一个自己的文件夹,例:F lgll星期一下午星期二:1.2、1.3所有练习l星期二下午4:00讲课:扫描显示电路l星期三:完成1.4所有练习l

    18、星期三下午:布置数字系统设计题l星期四星期五:完成数字系统设计一个实验室Al 用发光管的状态验证设计是否满足要求。在译码器设计时,这种方式是很直观的,但在计数器设计时,这样的验证方式就显得很不直观,尤其当计数器的位数增加时(如百进制计数),太多的发光管将使结果的读出非常困难。lBCD码驱动l直接驱动输入输出D C B AYa Yb Yc Yd Ye Yf Yg字形0 0 0 0 0 0 0 10 0 1 0 0 0 1 10 1 0 00 1 0 10 1 1 00 1 1 11 0 0 0 1 0 0 11 0 1 01 0 1 11 1 0 0 1 1 0 11 1 1 01 1 1 11

    19、 1 1 1 1 1 00 1 1 0 0 0 01 1 0 1 1 0 11 1 1 1 0 0 10 1 1 0 0 1 11 0 1 1 0 1 11 0 1 1 1 1 11 1 1 0 0 0 0 1 1 1 1 1 1 11 1 1 0 0 1 11 1 1 0 1 1 10 0 1 1 1 1 11 0 0 1 1 1 00 1 1 1 1 0 11 0 0 1 1 1 1 1 0 0 0 1 1 10123456789AbCdEFDCBADCBA图1-2-16 PLD引脚与外部器件连接锁定东南大学实验箱的静态显示方式属于BCD码驱动拨向“静态”输入a b c d e f g输出

    20、字形1 1 1 1 1 1 00 1 1 0 0 0 0 1 1 0 1 1 0 11 1 1 1 0 0 10 1 1 0 0 1 11 0 1 1 0 1 11 0 1 1 1 1 11 1 1 0 0 0 0 1 1 1 1 1 1 11 1 1 1 0 1 1 1 1 1 0 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 00 1 1 1 1 0 11 0 0 1 1 1 11 0 0 0 1 1 10123456789ABCDEF 当采用直接驱动方式时,驱动一个数码管需要七个电平信号,如果系统用来显示结果的数码管较多,应考虑数字系统输出信号占用PLD芯片管脚的问题,

    21、因为PLD芯片的管脚总数是有限的,例如F10K10,它的管脚总数是84,其中还有一些特定功能的管脚不能给用户使用,能使用的管脚不到60个,所以直接驱动时,必须设法减少占用PLD芯片的管脚的数量。解决的方法是采用动态扫描显示动态扫描显示(管脚见表1-2-2)拨向“动态”l设计一个电路,使八个数码管依次同时显示0、1、2、A、B、E、F。动 态 扫描字 形 显示十六进制计数module led(a,b,c,d,e,f,g,D);output a,b,c,d,e,f,g;input3:0 D;reg a,b,c,d,e,f,g;always(D)begin case(D)4d0:a,b,c,d,e,

    22、f,g=7b1111110;4d1:a,b,c,d,e,f,g=7b0110000;4d2:a,b,c,d,e,f,g=7b1101101;4d3:a,b,c,d,e,f,g=7b1111001;4d4:a,b,c,d,e,f,g=7b0110011;4d5:a,b,c,d,e,f,g=7b1011011;4d6:a,b,c,d,e,f,g=7b1011111;4d7:a,b,c,d,e,f,g=7b1110000;4d8:a,b,c,d,e,f,g=7b1111111;4d9:a,b,c,d,e,f,g=7b1111011;4hA:a,b,c,d,e,f,g=7b1110111;4hB:a,

    23、b,c,d,e,f,g=7b0011111;4hC:a,b,c,d,e,f,g=7b1001110;4hD:a,b,c,d,e,f,g=7b0111101;4hE:a,b,c,d,e,f,g=7b1001111;4hF:a,b,c,d,e,f,g=7b1000111;endcase end endmodulemodule decoder(out,in);output7:0 out;input2:0 in;reg7:0 out;always(in)begincase(in)3d0:out=8b00000001;3d1:out=8b00000010;3d2:out=8b00000100;3d3:o

    24、ut=8b00001000;3d4:out=8b00010000;3d5:out=8b00100000;3d6:out=8b01000000;3d7:out=8b10000000;endcaseendendmodulelmodule saomiao(reset,clk,clk1,ms1,ms2,ms3,ms4,lms5,ms6,ms7,ms8,a,b,c,d,e,f,g);linput clk,reset,clk1;lreg 3:0 in1;loutput ms1,ms2,ms3,ms4,ms5,ms6,ms7,ms8,a,b,c,d,e,f,g;lreg ms1,ms2,ms3,ms4,ms

    25、5,ms6,ms7,ms8,a,b,c,d,e,f,g;lreg 3:0 temp,flag;lalways(posedge clk)lbeginlms1,ms2,ms3,ms4,ms5,ms6,ms7,ms8=8b00000000;lflag=flag+1;lcase(flag)l0:begin temp=in1;ms1=1;endl1:begin temp=in1;ms2=1;endl2:begin temp=in1;ms3=1;endl3:begin temp=in1;ms4=1;endl4:begin temp=in1;ms5=1;endl5:begin temp=in1;ms6=1;

    26、endl6:begin temp=in1;ms7=1;endl7:begin temp=in1;ms8=1;endlendcaselcase(temp)l4d0:a,b,c,d,e,f,g=7b1111110;l4d1:a,b,c,d,e,f,g=7b0110000;l4d2:a,b,c,d,e,f,g=7b1101101;l4d3:a,b,c,d,e,f,g=7b1111001;l4d4:a,b,c,d,e,f,g=7b0110011;l4d5:a,b,c,d,e,f,g=7b1011011;l4d6:a,b,c,d,e,f,g=7b1011111;l4d7:a,b,c,d,e,f,g=7b

    27、1110000;l4d8:a,b,c,d,e,f,g=7b1111111;l4d9:a,b,c,d,e,f,g=7b1111011;l4hA:a,b,c,d,e,f,g=7b1110111;l4hB:a,b,c,d,e,f,g=7b0011111;l4hC:a,b,c,d,e,f,g=7b1001110;l4hD:a,b,c,d,e,f,g=7b0111101;l4hE:a,b,c,d,e,f,g=7b1001111;l4hF:a,b,c,d,e,f,g=7b1000111;ldefault:a,b,c,d,e,f,g=7b1111110;lendcaselendlalways(posedge

    28、 clk1)lbegin if(!reset)in1=4b0000;l else begin in1=in1+1;lendlendlendmodule东南大学实验箱完全用Verilog HDL完成 问题是要把两个计数器输出的个位和十位数分别显示在不同的数码管上,用Sel模块实现。原理是:in1,in2in8为八个数码管的BCD码输入端数据,MS1有效时,in1的数据送MS1显示;MS2有效时,in2的数据送MS2显示;MS8有效时,in8的数据送MS8显示。八组数据可以不全部都有,如此例中,十二进制数的低四位送in1,高四位送in2,六十进制数的低四位送in3,高四位送in4,其余数据端为空。

    29、lmodule sel(in1,in2,in3,in4,in5,in6,in7,in8,clk,ms1,ms2,ms3,ms4,ms5,ms6,ms7,ms8,a,b,c,d,e,f,g);linput clk;linput 3:0 in1,in2,in3,in4,in5,in6,in7,in8;loutput ms1,ms2,ms3,ms4,ms5,ms6,ms7,ms8,a,b,c,d,e,f,g;lreg ms1,ms2,ms3,ms4,ms5,ms6,ms7,ms8,a,b,c,d,e,f,g;lreg 3:0 temp,flag;lalways(posedge clk)lbeginl

    30、ms1,ms2,ms3,ms4,ms5,ms6,ms7,ms8=8b00000000;lflag=flag+1;lcase(flag)l0:begin temp=in1;ms1=1;endl1:begin temp=in2;ms2=1;endl2:begin temp=in3;ms3=1;endl3:begin temp=in4;ms4=1;endl4:begin temp=in5;ms5=1;endl5:begin temp=in6;ms6=1;endl6:begin temp=in7;ms7=1;endl7:begin temp=in8;ms8=1;endlendcase实验室Bl 用发光

    31、管的状态验证设计是否满足要求。在译码器设计时,这种方式是很直观的,但在计数器设计时,这样的验证方式就显得很不直观,尤其当计数器的位数增加时(如百进制计数),太多的发光管将使结果的读出非常困难。lBCD码驱动l直接驱动输入输出D C B AYa Yb Yc Yd Ye Yf Yg字形0 0 0 0 0 0 0 10 0 1 0 0 0 1 10 1 0 00 1 0 10 1 1 00 1 1 11 0 0 0 1 0 0 11 0 1 01 0 1 11 1 0 0 1 1 0 11 1 1 01 1 1 11 1 1 1 1 1 00 1 1 0 0 0 01 1 0 1 1 0 11 1

    32、1 1 0 0 10 1 1 0 0 1 11 0 1 1 0 1 11 0 1 1 1 1 11 1 1 0 0 0 0 1 1 1 1 1 1 11 1 1 0 0 1 11 1 1 0 1 1 10 0 1 1 1 1 11 0 0 1 1 1 00 1 1 1 1 0 11 0 0 1 1 1 1 1 0 0 0 1 1 10123456789AbCdEFDCBADCBA输入a b c d e f g输出字形1 1 1 1 1 1 00 1 1 0 0 0 0 1 1 0 1 1 0 11 1 1 1 0 0 10 1 1 0 0 1 11 0 1 1 0 1 11 0 1 1 1 1

    33、 11 1 1 0 0 0 0 1 1 1 1 1 1 11 1 1 1 0 1 1 1 1 1 0 1 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 00 1 1 1 1 0 11 0 0 1 1 1 11 0 0 0 1 1 10123456789ABCDEF 当采用直接驱动方式时,驱动一个数码管需要七个电平信号,如果系统用来显示结果的数码管较多,应考虑数字系统输出信号占用PLD芯片管脚的问题,因为PLD芯片的管脚总数是有限的,例如F10K10,它的管脚总数是84,其中还有一些特定功能的管脚不能给用户使用,能使用的管脚不到60个,所以直接驱动时,必须设法减少占用PLD芯片的管

    34、脚的数量。解决的方法是采用动态扫描显示l北理工生产的实验箱,只能用动态扫描方式进行数码管显示。l硬件电路提供了一只3线8线译码器,输入端为sel2,sel1,sel0,输出接各个数码管片选端。3线8线译码器输入端l设计一个电路,使八个数码管依次同时显示0、1、2、A、B、E、F。module led(a,b,c,d,e,f,g,D);output a,b,c,d,e,f,g;input3:0 D;reg a,b,c,d,e,f,g;always(D)begin case(D)4d0:a,b,c,d,e,f,g=7b1111110;4d1:a,b,c,d,e,f,g=7b0110000;4d2:

    35、a,b,c,d,e,f,g=7b1101101;4d3:a,b,c,d,e,f,g=7b1111001;4d4:a,b,c,d,e,f,g=7b0110011;4d5:a,b,c,d,e,f,g=7b1011011;4d6:a,b,c,d,e,f,g=7b1011111;4d7:a,b,c,d,e,f,g=7b1110000;4d8:a,b,c,d,e,f,g=7b1111111;4d9:a,b,c,d,e,f,g=7b1111011;4hA:a,b,c,d,e,f,g=7b1110111;4hB:a,b,c,d,e,f,g=7b0011111;4hC:a,b,c,d,e,f,g=7b1001

    36、110;4hD:a,b,c,d,e,f,g=7b0111101;4hE:a,b,c,d,e,f,g=7b1001111;4hF:a,b,c,d,e,f,g=7b1000111;endcase endendmodule 译码器北京理工实验箱module saomiaob(reset,clk,clk1,flag,a,b,c,d,e,f,g);input clk,reset,clk1;reg 3:0 in1;output flag,a,b,c,d,e,f,g;reg a,b,c,d,e,f,g;reg2:0 flag;always(posedge clk)beginflag=flag+1;case(

    37、in1)4d0:a,b,c,d,e,f,g=7b1111110;4d1:a,b,c,d,e,f,g=7b0110000;4d2:a,b,c,d,e,f,g=7b1101101;4d3:a,b,c,d,e,f,g=7b1111001;4d4:a,b,c,d,e,f,g=7b0110011;4d5:a,b,c,d,e,f,g=7b1011011;4d6:a,b,c,d,e,f,g=7b1011111;4d7:a,b,c,d,e,f,g=7b1110000;4d8:a,b,c,d,e,f,g=7b1111111;4d9:a,b,c,d,e,f,g=7b1111011;4hA:a,b,c,d,e,f,

    38、g=7b1110111;4hB:a,b,c,d,e,f,g=7b0011111;4hC:a,b,c,d,e,f,g=7b1001110;4hD:a,b,c,d,e,f,g=7b0111101;4hE:a,b,c,d,e,f,g=7b1001111;4hF:a,b,c,d,e,f,g=7b1000111;endcaseendalways(posedge clk1)begin if(!reset)in1=4b0000;else begin in1=in1+1;endendendmodule完全用Verilog HDL完成 问题是要把两个计数器输出的个位和十位数分别显示在不同的数码管上,用Selb模

    39、块实现。原理是:in1,in2in8为八个数码管的BCD码输入端数据,sel2.0=000时,左边数码管(ms1)选中,in1送ms1;sel2.0=001时,第二数码管(ms2)选中,in1送ms2;.sel2.0=111时,第八数码管(ms8)选中,in1送ms8;八组数据可以不全部都有,如此例中,十二进制数的低四位送in1,高四位送in2,六十进制数的低四位送in3,高四位送in4,其余数据端为空。北京理工实验箱module selb(in1,in2,in3,in4,in5,in6,in7,in8,clk,flag,a,b,c,d,e,f,g);input clk;input 3:0 i

    40、n1,in2,in3,in4,in5,in6,in7,in8;output a,b,c,d,e,f,g;output flag;reg a,b,c,d,e,f,g;reg 3:0 temp;reg 2:0 flag;always(posedge clk)beginflag=flag+1;case(flag)0:begin temp=in1;end1:begin temp=in2;end2:begin temp=in3;end3:begin temp=in4;end4:begin temp=in5;end5:begin temp=in6;end6:begin temp=in7;end7:begi

    41、n temp=in8;endendcasecase(temp)4d0:a,b,c,d,e,f,g=7b1111110;4d1:a,b,c,d,e,f,g=7b0110000;4d2:a,b,c,d,e,f,g=7b1101101;4d3:a,b,c,d,e,f,g=7b1111001;4d4:a,b,c,d,e,f,g=7b0110011;4d5:a,b,c,d,e,f,g=7b1011011;4d6:a,b,c,d,e,f,g=7b1011111;4d7:a,b,c,d,e,f,g=7b1110000;4d8:a,b,c,d,e,f,g=7b1111111;4d9:a,b,c,d,e,f,g

    42、=7b1111011;/*4hA:a,b,c,d,e,f,g=7b1110111;4hB:a,b,c,d,e,f,g=7b0011111;4hC:a,b,c,d,e,f,g=7b1001110;4hD:a,b,c,d,e,f,g=7b0111101;4hE:a,b,c,d,e,f,g=7b1001111;4hF:a,b,c,d,e,f,g=7b1000111;*/default:a,b,c,d,e,f,g=7bzzzzzzz;endcaseendendmodulel设计一个能进行时、分、秒计时的十二小时制或二十四小时制的数字钟,并具有定时与闹钟功能,能在设定的时间发出闹铃音,能非常方便地对小时

    43、、分钟和秒进行手动调节以校准时间,每逢整点,产生报时音报时。l主控电路l计数器模块l扫描显示 A、B:模式选择,AB=00为模式0,计时状态;AB=01为模式1,手动校时状态;AB=10为模式2,闹钟设置状态。Turn:turn=0时,在手动校对时,选择调整分钟部分;turn=1时,在手动校对时,选择调整小时部分。Change:在手动校时或闹钟设置模式下,每按一次,计数器加1。Reset:reset=0时,整个系统复位;reset=1时,系统计时或其它特殊功能操作。Reset1:reset1=0时,关闭闹铃信号;reset1=1时,可对闹铃进行设置。状态显示信号(发光管):LD_alert:指

    44、示是否设置了闹铃功能;LD_h:指示当前调整的是小时信号;LD_m:指示当前调整的是分钟信号。l设计一个能进行拔河游戏的电路。l电路使用15个(或9个)发光二极管表示拔河的“电子绳”,开机后只有中间一个发亮,此即拔河的中心点。l游戏双方各持一个按钮,迅速地、不断地按动,产生脉冲,谁按得快,亮点就向谁的方向移动,每按一次,亮点移动一次。l亮点移到任一方终端二极管时,这一方就获胜,此时双方按钮均无作用,输出保持,只有复位后才使亮点恢复到中心。l由裁判下达比赛开始命令后,甲乙双方才能输入信号,否则,输入信号无效。l用数码管显示获胜者的盘数,每次比赛结束自动给获胜方加分。l加/减计数器l译码器l得分计

    45、数显示电路设计一个可容纳四组参賽的数字式抢答器,每组设一个按钮供抢答使用。抢答器具有第一信号鉴别和锁存功能,使除第一抢答者外的按钮不起作用;设置一个主持人“复位”按钮,主持人复位后,开始抢答,第一信号鉴别锁存电路得到信号后,用指示灯显示抢答组别,扬声器发出秒的音响。*设置犯规电路,对提前抢答和超时答题(例如3分钟)的组别鸣笛示警,并由组别显示电路显示出犯规组别。设置一个计分电路,每组开始预置分,由主持人记分,答对一次加分,答错一次减分。l鉴别锁存模块l答题计时模块l计分电路模块l扫描显示模块l1此模块的关键是准确判断出第一抢答者并将其锁存,实现的方法可使用触发器或锁存器,在得到第一信号后将输入

    46、封锁,使其它组的抢答信号无效。l2形成第一抢答信号后,用编码、译码及数码显示电路显示第一抢答者的组别,控制扬声器发出音响,并启动答题计时电路。鉴别锁存模块l设计一个洗衣机洗涤程序控制器,控制洗衣机的电机作如下规律运转:l用两位数码管预置洗涤时间(分钟数),洗涤过程在送入预置时间后开始运转,洗涤中按倒计时方式对洗涤过程作计时显示,用LED表示电机的正、反转,如果定时时间到,则停机并发出音响信号。l洗涤预置时间编码模块l减法计数显示l时序电路l译码驱动模块 l1设计一个能测量方波信号频率的频率计,测量结果用十进制数显示。l2.测量的频率范围是110KHz,分成两个频段,即1999Hz,1KHz10

    47、KHz,用三位数码管显示测量频率,用LED显示表示单位,如亮绿灯表示Hz,亮红灯表示KHz。3.具有自动校验和测量两种功能,即能用标准时钟校验测量精度。4.具有超量程报警功能,在超出目前量程档的测量范围时,发出灯光和音响信号。l脉冲信号的频率就是在单位时间内所产生的脉冲个数,其表达式为f=N/T,f为被测信号的频率,N为计数器所累计的脉冲个数,T为产生N个脉冲所需的时间。所以,在1秒时间内计数器所记录的结果,就是被测信号的频率。l测量/校验选择模块*l计数器模块l送存选择报警模块l锁存模块l扫描显示模块 测量/校验选择模块*输入信号:选择信号selet 被测信号meas 测试信号test输出信

    48、号:CP1当selet=0时,为测量状态,CP1=meas;当selet=1时,为校验状态,CP1=test。校验与测量共用一个电路,只是被测信号CP1不同而已。l设置1秒定时信号(周期为2秒),在1秒定时时间内的所有被测信号送计数器输入端。l计数器对CP1信号进行计数,在1秒定时结束后,将计数器结果送锁存器锁存,同时将计数器清零,为下一次采样测量做好准备。l设置量程档控制开关K,单位显示信号Y,当K=0时,为1999Hz量程档,数码管显示的数值为被测信号频率值,Y显示绿色,即单位为Hz;当K=1时,为1KHz10KHz量程档,被测信号频率值为数码管显示的数值乘1000,Y显示红色,即单位为K

    49、Hz。l设置超出量程档测量范围示警信号alert。计数器由四级十进制计数构成(带进位C)。若被测信号频率小于1KHz(K=0),则计数器只进行三级十进制计数,最大显示值为999.Hz,如果被测信号频率超过此范围,示警信号驱动灯光、扬声器报警;若被测信号为1KHz10KHz(K=1),计数器进行四位十进制计数,取高三位显示,最大显示值为9.99KHz,如果被测信号频率超过此范围,报警。左第一位左第一位l设计一个电子密码锁,在锁开的状态下输入密码,密码共4位,用数据开关K1K10分别代表数字1、2、9、0,输入的密码用数码管显示,最后输入的密码显示在最右边的数码管上,即每输入一位数,密码在数码管上

    50、的显示左移一位。可删除输入的数字,删除的是最后输入的数字,每删除一位,密码在数码管的显示右移一位,并在左边空出的位上补充“0”。用一位输出电平的状态代表锁的开闭状态。为保证密码锁主人能打开密码锁,设置一个万能密码,在主人忘记密码时使用。l密码输入删除控制模块l寄存模块l比较模块l扫描显示 模块设计一个具有7位显示的电话按键显示器,显示器应能正确反映按键数字,显示器显示从低位向高位前移,逐位显示按键数字,最低位为当前显示位,七位数字输入完毕后,电话接通,扬声器发出“嘟嘟”接通声响,直到有接听信号输入,若一直没有接听,10秒钟后,自动挂断,显示器清除显示,扬声器停止,直到有新号码输入。l号码输入显

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:EDA与电子技术课程设计课件.ppt
    链接地址:https://www.163wenku.com/p-5191704.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库