版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
EDA与电子技术课程设计教材:EDA与数字系统设计李国丽朱维勇栾铭主编绪论门电路、触发器等称为逻辑器件;由逻辑器件构成,能执行某单一功能的电路,如计数器、译码器、加法器等,称为逻辑功能部件;由逻辑功能部件组成的能实现复杂功能的数字电路称数字系统。图0-1数字系统框图数字系统设计方法简介
明确设计要求,确定系统的输入/输出;确定整体设计方案;自顶向下(top-down)的模块化设计方法。数字系统的设计层次选用通用集成电路芯片构成数字系统;应用可编程逻辑器件实现数字系统;设计专用集成电路(单片系统)。应用可编程逻辑器件(ProgrammableLogicDevicePLD)实现数字系统设计,是目前利用EDA(ElectronicDesignAutomation)技术设计数字系统的潮流。这种设计方法以数字系统设计软件为工具,将传统数字系统设计中的搭建调试用软件仿真取代,对计算机上建立的系统模型,用测试码或测试序列测试验证后,将系统实现在PLD芯片或专用集成电路上,这样最大程度地缩短了设计和开发时间,降低了成本,提高了系统的可靠性。PLD简介
数字集成电路的发展过程:电子管晶体管小中规模集成电路(SSI,MSI)大规模集成电路(LSI)超大规模集成电路(VLSIC)
具有特定功能的专用集成电路(ApplicationSpecificIntegratedCircuitASIC)为使ASIC的设计周期尽可能短,出现了现场可编程逻辑器件(FieldProgrammableLogicDeviceFPLD),其中应用最广泛的当属CPLD和FPGA。
CPLD:ComplexProgrammableLogicDeviceFPGA:FieldProgrammableGateArray统称为PLD或CPLD/FPGA。
PLD发展过程早期:PROM、EPROM、EEPROM
70年代中期:ProgrammableLogicarrayPLA
70年代末:美国MMI公司ProgrammablearrayLogicPAL
80年代中期:Altera公司GenericArrayLogicGAL共同特点:低密度PLD,结构简单,设计灵活,规模小,难以实现复杂的逻辑功能。PLD发展过程80年代中期:Altera公司ErasableProgrammableLogicDeviceEPLD
1985年:Xilinx公司FieldProgrammableGateArrayFPGA80年代末:Lattice公司提出InSystemProgrammableISP)技术,相继出现了一系列具备在系统可编程能力的复杂可编程逻辑器件(ComplexProgrammab1eLogicDeviceCPLD)。共同特点:高密度、高速度、低功耗结构体系更灵活、适用范围更宽,设计风险为零。PLD发展展过程程90年年代以以后,,高密密度PLD在生生产工工艺、、器件件的编编程和和测试试技术术等方方面都都有了了飞速速发展展,CPLD的的集成成度一一般可可达数数千甚甚至上上万门门。。Altera的的EPF10K10每片片含62000158000个可可使用用门,,重复复擦写写次数数达10万万次以以上。。PLA、PAL、GAL、EPLD、、FPGA、ISP-PLD的基基本结结构在在《数数字电电子技技术基基础》》的第第八章章有介介绍EDA软件件种类类及各各自特特点专门用于开开发FPGA和CPLD的EDA工具分为五五个模块::1.设计输入编编辑器(xilinx的Foundation、Altera的MAX+plus2等);2.仿真器(如Mentor公司的ModelSim,Cadence公司的Verilog-XL,NC-Verilog等等);3.HDL综合器(Synopsys公司的的FPGACompiler、FPGAExpress等);4.适配器(或或部局布线器器)(如Lattice公司的ispEXPERT中有自己的适适配器);5.下载器(编编程器)。MAX+Plus210.0(学生生版)支持持的器件1、EPF10K10,EPF10K10A等等2、MAX7000系列列(如MAX7000S中的MAX7128)3、EPM9320等MAX+plus2使用用练习图形输入方式式(.gdf文件);HDL(HardwareDescriptionLanguage)语语言输入方式式1)VHDL语言(VeryHighSpeedIntergatedCircuitHardwareDescriptionLanguage))2)VerilogHDL语言设计过程设计输入图形或HDL语言输入编译Compiler项目校验、仿真Simulate编程或下载Program或Configure步骤进入Windows操作作系统,打开开MAX+Plus2;;启动File\Project\Name菜菜单,输入设设计文件的名名称(给出文文件存储路径径);点击Assign\Device菜菜单,选择器器件(EPM7128SLC84-6或EPF10K10LC84-4);启动File\New菜菜单,选择GraphicEditor,打打开原理图编编辑器;原理图设计输输入过程元器件放置;;在元器件之间间添加连线;;添加输入、输输出引脚,并并给它们命名名;保存原理图图。编译启动MaxplusII/Compiler菜菜单,选择择Start,开始始编译;若电路有错错,编译器器停止编译译,并显示示出错信息息;若电电路路无无错错,,则则编编译译通通过过,,生生成成.sof、、.pof文文件件,,以以备备硬硬件件下下载载或或编编程程时时用用。。注意意::编编译译只只对对顶顶层层文文件件进进行行时序序模模拟拟仿仿真真编译译通通过过后后就就可可进进行行时时序序模模拟拟::1、建建立波波形输输入文文件::1)打打开菜菜单File/New,,选WaveformEditorFile(.scf),OK;2)在在波形形编辑辑器窗窗口的的Name下单单击鼠鼠标右右键,,出现现浮动动菜单单,选选EnterNodesfromSNF…出出现对对话框框;3)在Type区区选Inputs和和Outputs,单击List按钮,可可在其右右下方看到到设计中的的输入输出出信号,单单击=>可可将这些信信号选到SelectedNodes&Groups区,OK;4)在菜单单File中选Save。。时序模拟仿仿真2、编辑输输入节点波波形:1)在菜单Options中选中SnaptoGrid和ShowGrid,并打打开GridSize…设置仿仿真时间;2)使用绘制制图形工具条条绘制输入节节点波形;3)选File中Save存盘。时序模拟仿真真3、时序模拟拟:1)在菜单Maxplus2中选Simulator;2)单击击Start,开始模拟拟;3)模拟完毕毕,单击OpenScf得模拟结结果,可对结结果进行检查查(注意有动动态延时和竞竞争冒险现象象)。管脚分配启动MaxplusII/FloorplanEditor菜单单,则显示该该设计项目的的管脚分配;;用户可根据下下载板情况,,改变管脚分分配。注意下载板有两种种:1.北京理工工达胜科技有有限公司生产产的下载板,芯片管脚与与外围信号没没有连接,需需在实验中由由你连接;2.东南大学学东讯通生产产的DXT-BIII型型EDA实验验开发系统,芯片管脚脚与外围信号号已连接好,必须根据下下表改变管脚脚分配.图1-2-15PLD引脚与外部人工连接EPF10K10LC84-4图1-2-16PLD引脚与外部器件连接锁定图1-2-16PLD管脚与外部器件连接锁定器件名称信号名10K10管脚器件名称信号名10K10管脚输出发光管L12R25数据开关K229输出发光管L12G24数据开关K330输出发光管L1123数据开关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时钟信号CP11M4C11时钟信号CP243M4D10数码管M3M3A9M3B8M3C7M3D6数码管M2M2A5M2B3M2C83M2D81数码管M1M1A80M1B79M1C78M1D73下载将实验板接口口线与计算机机并口连接,,打开试验箱箱电源;启动MaxliusII/Programmer菜单;如果是第一次次使用该软件件,启动Options\HardwareSetup菜单,在在HardwareType中选选择ByteBlaster(MV)。Configure即可可完成下载。。注意若下载后提示示下载不成功功信息,按以以上各步检查查是否设置正正确,并检查查计算机与实实验箱硬件连连接,排除故故障,再次尝尝试下载;随时可利用帮帮助信息(?),解决疑疑难问题;相同名字的导导线,在电气气上相连(P26);器件可以旋转转;一组输入或一一组输出时,,可用BUS(组);改变管脚后,,应再编译一一次,再下载载。VerilogHDL语言输入方方式进入Windows操作作系统,打开开MAX+Plus2;;启动File\Project\Name菜菜单,输入设设计文件的名名称(给出文文件存储路径径);点击Assign\Device菜菜单,选择器器件(EPM7128SLC84-6或EPF10K10LC84-4);启动File\New菜菜单,选择TextEditorfile,打开原理理图编辑器;;键入程序;在File\Saveas保存存,生成.v文件;以下步骤同图图形输入法。。有关VerilogHDL的详细细内容参见第第三章(P.98)/**************************************************************///MODULE:adder//FILENAME:add.v//VERSION:v1.0//DATE:May5th,2003//AUTHOR:Peter//CODETYPE:RTL//DESCRIPTION:Anadderwithtwoinputs(1bit),oneoutput(2bits)./****************************************************/moduleadder(in1,in2,sum);inputin1,in2;output[1:0]sum;wirein1,in2;reg[1:0]sum;always@(in1orin2)beginsum=in1+in2;endendmodule模块块名名((必必须须和和存存储储时时的的名名称称相相同同))端口口列列表表说明明部部分分模块块主主体体结束束行行注释释部部分分模块块定定义义行行事件件控控制制的的Always语语句句,,一一直直监监测测输输入入信信号号,,只只要要有有变变化化,,就就执执行行下下面面的的块块语语句句。。Case语语句句Case(敏敏感感表表达达式式))值1::块块语语句句1;;值2::块块语语句句2;;………default:块块语语句句n+1;endcasemoduledecoder(out,in);output[7:0]out;input[2:0]in;reg[7:0]out;always@(in)begincase(in)3'd0:out=8'b00000001;3'd1:out=8'b00000010;3'd2:out=8'b00000100;3'd3:out=8'b00001000;3'd4:out=8'b00010000;3'd5:out=8'b00100000;3'd6:out=8'b01000000;3'd7:out=8'b10000000;endcaseendendmodule<位位宽宽>’’<基基数数><数数值值>d十十进进制制h十十六六进进制制b二二进进制制o八八进进制制modulejsq16(q,clk,reset);output[3:0]q;reg[3:0]q;inputclk,reset;always@(posedgeclkornegedgereset)beginif(!reset)q[3:0]<=4'b0000;elseq[3:0]<=q[3:0]+4'b0001;endendmoduleif(表表达达式式))块块语语句句1;;else块块语语句句2;;注意意.v文文件件描描述述的的功功能能模模块块可可以以生生成成一一个个符符号号,,放放在在用用户户库库中中,,供供其其它它原原理理图图输输入入文文件件调调用用,,调调用用的的方方法法与与从从器器件件库库中中取取元元器器件件的的方方法法相相同同。。生生成成功功能能模模块块的的方方法法为为::选选择择菜菜单单file\createdefaultsymbol,,经经过过与与编编译译相相同同的的过过程程后后,,生生成成的的功功能能模模块块被被放放入入用用户户库库,,实验验内内容容和和时时间间安安排排星期期一一上上午午讲讲课课,,完完成成非非门门下下载载先在在F盘盘中中设设置置一一个个自自己己的的文文件件夹夹,,例例::F\lgl星期期一一下下午午星星期期二二::1.2、、1.3所所有有练练习习星期期二二下下午午4::00讲讲课课::扫扫描描显显示示电电路路星期期三三::完完成成1.4所所有有练练习习星期三下午午:布置数数字系统设设计题星期四星星期五:完完成数字系系统设计一一个扫描显示实验室A扫描显示电电路用发光管的的状态验证证设计是否否满足要求求。在译码码器设计时时,这种方方式是很直直观的,但但在计数器器设计时,,这样的验验证方式就就显得很不不直观,尤尤其当计数数器的位数数增加时((如百进制制计数),,太多的发发光管将使使结果的读读出非常困困难。数码管驱动动方式BCD码驱驱动直接驱动数码管BCD码驱动输入输出DCBAYaYbYcYdYeYfYg字形000000010010001101000101011001111000100110101011110011011110111111111100110000110110111110010110011101101110111111110000111111111100111110111001111110011100111101100111110001110123456789AbCdEFDCBADCBA图1-2-16PLD引脚脚与外部器器件连接锁锁定东南大学实实验箱的静静态显示方方式属于BCD码驱驱动拨向“静态态”数码管直接接驱动输入abcdefg输出字形11111100110000110110111110010110011101101110111111110000111111111110111110111001111110011100111101100111110001110123456789ABCDEF当采用直接接驱动方式式时,驱动动一个数码码管需要七七个电平信信号,如果果系统用来来显示结果果的数码管管较多,应应考虑数字字系统输出出信号占用用PLD芯芯片管脚的的问题,因因为PLD芯片的管管脚总数是是有限的,,例如F10K10,它的管管脚总数是是84,其其中还有一一些特定功功能的管脚脚不能给用用户使用,,能使用的的管脚不到到60个,,所以直接接驱动时,,必须设法法减少占用用PLD芯芯片的管脚脚的数量。。解决的方方法是采采用动态态扫描显显示动态扫描描显示(管脚见表表1-2-2)拨向“动动态”例1-4-1设计一个个电路,,使八个个数码管管依次同同时显示示0、1、2、、……A、B、、…E、、F。例1-4-1动态扫描字形显示十六进制计数moduleled(a,b,c,d,e,f,g,D);outputa,b,c,d,e,f,g;input[3:0]D;rega,b,c,d,e,f,g;always@(D)begincase(D)4'd0:{a,b,c,d,e,f,g}=7'b1111110;4'd1:{a,b,c,d,e,f,g}=7'b0110000;4'd2:{a,b,c,d,e,f,g}=7'b1101101;4'd3:{a,b,c,d,e,f,g}=7'b1111001;4'd4:{a,b,c,d,e,f,g}=7'b0110011;4'd5:{a,b,c,d,e,f,g}=7'b1011011;4'd6:{a,b,c,d,e,f,g}=7'b1011111;4'd7:{a,b,c,d,e,f,g}=7'b1110000;4'd8:{a,b,c,d,e,f,g}=7'b1111111;4'd9:{a,b,c,d,e,f,g}=7'b1111011;4'hA:{a,b,c,d,e,f,g}=7'b1110111;4'hB:{a,b,c,d,e,f,g}=7'b0011111;4'hC:{a,b,c,d,e,f,g}=7'b1001110;4'hD:{a,b,c,d,e,f,g}=7'b0111101;4'hE:{a,b,c,d,e,f,g}=7'b1001111;4'hF:{a,b,c,d,e,f,g}=7'b1000111;endcaseendendmodulemoduledecoder(out,in);output[7:0]out;input[2:0]in;reg[7:0]out;always@(in)begincase(in)3'd0:out=8'b00000001;3'd1:out=8'b00000010;3'd2:out=8'b00000100;3'd3:out=8'b00001000;3'd4:out=8'b00010000;3'd5:out=8'b00100000;3'd6:out=8'b01000000;3'd7:out=8'b10000000;endcaseendendmodulemodulesaomiao(reset,clk,clk1,ms1,ms2,ms3,ms4,ms5,ms6,ms7,ms8,a,b,c,d,e,f,g);inputclk,reset,clk1;reg[3:0]in1;outputms1,ms2,ms3,ms4,ms5,ms6,ms7,ms8,a,b,c,d,e,f,g;regms1,ms2,ms3,ms4,ms5,ms6,ms7,ms8,a,b,c,d,e,f,g;reg[3:0]temp,flag;always@(posedgeclk)begin{ms1,ms2,ms3,ms4,ms5,ms6,ms7,ms8}=8'b00000000;flag=flag+1;case(flag)0:begintemp=in1;ms1=1;end1:begintemp=in1;ms2=1;end2:begintemp=in1;ms3=1;end3:begintemp=in1;ms4=1;end4:begintemp=in1;ms5=1;end5:begintemp=in1;ms6=1;end6:begintemp=in1;ms7=1;end7:begintemp=in1;ms8=1;endendcasecase(temp)4'd0:{a,b,c,d,e,f,g}=7'b1111110;4'd1:{a,b,c,d,e,f,g}=7'b0110000;4'd2:{a,b,c,d,e,f,g}=7'b1101101;4'd3:{a,b,c,d,e,f,g}=7'b1111001;4'd4:{a,b,c,d,e,f,g}=7'b0110011;4'd5:{a,b,c,d,e,f,g}=7'b1011011;4'd6:{a,b,c,d,e,f,g}=7'b1011111;4'd7:{a,b,c,d,e,f,g}=7'b1110000;4'd8:{a,b,c,d,e,f,g}=7'b1111111;4'd9:{a,b,c,d,e,f,g}=7'b1111011;4'hA:{a,b,c,d,e,f,g}=7'b1110111;4'hB:{a,b,c,d,e,f,g}=7'b0011111;4'hC:{a,b,c,d,e,f,g}=7'b1001110;4'hD:{a,b,c,d,e,f,g}=7'b0111101;4'hE:{a,b,c,d,e,f,g}=7'b1001111;4'hF:{a,b,c,d,e,f,g}=7'b1000111;default:{a,b,c,d,e,f,g}=7'b1111110;endcaseendalways@(posedgeclk1)beginif(!reset)in1=4'b0000;elsebeginin1=in1+1;endendendmodule东南大大学实实验箱箱完全用用VerilogHDL完完成问题是是要把把两个个计数数器输输出的的个位位和十十位数数分别别显示示在不不同的的数码码管上上,用用Sel模模块实实现。。原理是是:in1,in2………in8为为八个个数码码管的的BCD码码输入入端数数据,,MS1有有效时时,in1的数数据送送MS1显显示;;MS2有效效时,,in2的的数据据送MS2显示示;……MS8有效效时,,in8的的数据据送MS8显示示。八组数数据可可以不不全部部都有有,如如此例例中,,十二二进制制数的的低四四位送送in1,高四四位送送in2,,六十十进制制数的的低四四位送送in3,高四四位送送in4,,其余余数据据端为为空。。例1-4-2设计一个电电路,使两两个数码管管显示112的十二进制制计数,两两个数码管管显示059的六十进制制计数。注意:十二二进制计数数器自行设设计case(temp)4'd0:{a,b,c,d,e,f,g}=7'b1111110;4'd1:{a,b,c,d,e,f,g}=7'b0110000;
4'd2:{a,b,c,d,e,f,g}=7'b1101101;
4'd3:{a,b,c,d,e,f,g}=7'b1111001;4'd4:{a,b,c,d,e,f,g}=7'b0110011;4'd5:{a,b,c,d,e,f,g}=7'b1011011;
4'd6:{a,b,c,d,e,f,g}=7'b1011111;
4'd7:{a,b,c,d,e,f,g}=7'b1110000;4'd8:{a,b,c,d,e,f,g}=7'b1111111;4'd9:{a,b,c,d,e,f,g}=7'b1111011;
4'hA:{a,b,c,d,e,f,g}=7'b1110111;
4'hB:{a,b,c,d,e,f,g}=7'b0011111;4'hC:{a,b,c,d,e,f,g}=7'b1001110;4'hD:{a,b,c,d,e,f,g}=7'b0111101;4'hE:{a,b,c,d,e,f,g}=7'b1001111;4'hF:{a,b,c,d,e,f,g}=7'b1000111;default:{a,b,c,d,e,f,g}=7'b1111110;endcaseendendmodulemodulesel(in1,in2,in3,in4,in5,in6,in7,in8,clk,ms1,ms2,ms3,ms4,ms5,ms6,ms7,ms8,a,b,c,d,e,f,g);inputclk;input[3:0]in1,in2,in3,in4,in5,in6,in7,in8;outputms1,ms2,ms3,ms4,ms5,ms6,ms7,ms8,a,b,c,d,e,f,g;regms1,ms2,ms3,ms4,ms5,ms6,ms7,ms8,a,b,c,d,e,f,g;reg[3:0]temp,flag;always@(posedgeclk)begin{ms1,ms2,ms3,ms4,ms5,ms6,ms7,ms8}=8'b00000000;flag=flag+1;case(flag)0:begintemp=in1;ms1=1;end1:begintemp=in2;ms2=1;end2:begintemp=in3;ms3=1;end3:begintemp=in4;ms4=1;end4:begintemp=in5;ms5=1;end5:begintemp=in6;ms6=1;end6:begintemp=in7;ms7=1;end7:begintemp=in8;ms8=1;endendcaseEnd扫描显示实验室B扫描显示电路路用发光管的状状态验证设计计是否满足要要求。在译码码器设计时,,这种方式是是很直观的,,但在计数器器设计时,这这样的验证方方式就显得很很不直观,尤尤其当计数器器的位数增加加时(如百进进制计数),,太多的发光光管将使结果果的读出非常常困难。数码管管驱动动方式式BCD码驱驱动直接驱驱动数码管管BCD码驱动动输入输出DCBAYaYbYcYdYeYfYg字形000000010010001101000101011001111000100110101011110011011110111111111100110000110110111110010110011101101110111111110000111111111100111110111001111110011100111101100111110001110123456789AbCdEFDCBADCBA数码管管直接接驱动动输入abcdefg输出字形11111100110000110110111110010110011101101110111111110000111111111110111110111001111110011100111101100111110001110123456789ABCDEF当采用用直接接驱动动方式式时,,驱动动一个个数码码管需需要七七个电电平信信号,,如果果系统统用来来显示示结果果的数数码管管较多多,应应考虑虑数字字系统统输出出信号号占用用PLD芯芯片管管脚的的问题题,因因为PLD芯片片的管管脚总总数是是有限限的,,例如如F10K10,它它的管管脚总总数是是84,其其中还还有一一些特特定功功能的的管脚脚不能能给用用户使使用,,能使使用的的管脚脚不到到60个,,所以以直接接驱动动时,,必须须设法法减少少占用用PLD芯芯片的的管脚脚的数数量。。解决的的方法法是采采用动动态扫扫描显显示北理工工生产产的实实验箱箱,只只能用用动态态扫描描方式式进行行数码码管显显示。。硬件电路提提供了一只只3线-8线译码器器,输入端端为sel2,sel1,sel0,,输出接各各个数码管管片选端。。3线-8线线译码器输输入端例1-4-1设计一个电电路,使八八个数码管管依次同时时显示0、、1、2、、……A、、B、…E、F。moduleled(a,b,c,d,e,f,g,D);outputa,b,c,d,e,f,g;input[3:0]D;rega,b,c,d,e,f,g;always@(D)begincase(D)4'd0:{a,b,c,d,e,f,g}=7'b1111110;4'd1:{a,b,c,d,e,f,g}=7'b0110000;4'd2:{a,b,c,d,e,f,g}=7'b1101101;4'd3:{a,b,c,d,e,f,g}=7'b1111001;4'd4:{a,b,c,d,e,f,g}=7'b0110011;4'd5:{a,b,c,d,e,f,g}=7'b1011011;4'd6:{a,b,c,d,e,f,g}=7'b1011111;4'd7:{a,b,c,d,e,f,g}=7'b1110000;4'd8:{a,b,c,d,e,f,g}=7'b1111111;4'd9:{a,b,c,d,e,f,g}=7'b1111011;4'hA:{a,b,c,d,e,f,g}=7'b1110111;4'hB:{a,b,c,d,e,f,g}=7'b0011111;4'hC:{a,b,c,d,e,f,g}=7'b1001110;4'hD:{a,b,c,d,e,f,g}=7'b0111101;4'hE:{a,b,c,d,e,f,g}=7'b1001111;4'hF:{a,b,c,d,e,f,g}=7'b1000111;endcaseendendmodule例1-4-1译码器北京理工实验验箱modulesaomiaob(reset,clk,clk1,flag,a,b,c,d,e,f,g);inputclk,reset,clk1;reg[3:0]in1;outputflag,a,b,c,d,e,f,g;rega,b,c,d,e,f,g;reg[2:0]flag;always@(posedgeclk)beginflag=flag+1;case(in1)4'd0:{a,b,c,d,e,f,g}=7'b1111110;4'd1:{a,b,c,d,e,f,g}=7'b0110000;4'd2:{a,b,c,d,e,f,g}=7'b1101101;4'd3:{a,b,c,d,e,f,g}=7'b1111001;4'd4:{a,b,c,d,e,f,g}=7'b0110011;4'd5:{a,b,c,d,e,f,g}=7'b1011011;4'd6:{a,b,c,d,e,f,g}=7'b1011111;4'd7:{a,b,c,d,e,f,g}=7'b1110000;4'd8:{a,b,c,d,e,f,g}=7'b1111111;4'd9:{a,b,c,d,e,f,g}=7'b1111011;4'hA:{a,b,c,d,e,f,g}=7'b1110111;4'hB:{a,b,c,d,e,f,g}=7'b0011111;4'hC:{a,b,c,d,e,f,g}=7'b1001110;4'hD:{a,b,c,d,e,f,g}=7'b0111101;4'hE:{a,b,c,d,e,f,g}=7'b1001111;4'hF:{a,b,c,d,e,f,g}=7'b1000111;endcaseendalways@(posedgeclk1)beginif(!reset)in1=4'b0000;elsebeginin1=in1+1;endendendmodule完全用VerilogHDL完成成问题是要把两两个计数器输输出的个位和和十位数分别别显示在不同同的数码管上上,用Selb模块实现。原理是:in1,in2……in8为八个数码码管的BCD码输入端数数据,sel[2..0]=000时,左边数数码管(ms1)选中,,in1送ms1;sel[2..0]=001时,第第二数码管((ms2)选选中,in1送ms2;;……….sel[2..0]=111时,第第八数码管((ms8)选选中,in1送ms8;;八组数据可以以不全部都有有,如此例中中,十二进制制数的低四位位送in1,高四位送in2,六十十进制数的低低四位送in3,高四位位送in4,,其余数据端端为空。例1-4-2设计一个电路路,使两个数数码管显示112的十二进制计计数,两个数数码管显示059的六十进制计计数。注意:十二进进制计数器自自行设计北京理工实验验箱moduleselb(in1,in2,in3,in4,in5,in6,in7,in8,clk,flag,a,b,c,d,e,f,g);inputclk;input[3:0]in1,in2,in3,in4,in5,in6,in7,in8;outputa,b,c,d,e,f,g;outputflag;rega,b,c,d,e,f,g;reg[3:0]temp;reg[2:0]flag;always@(posedgeclk)beginflag=flag+1;case(flag)0:begintemp=in1;end1:begintemp=in2;end2:begintemp=in3;end3:begintemp=in4;end4:begintemp=in5;end5:begintemp=in6;end6:begintemp=in7;end7:begintemp=in8;endendcasecase(temp)4'd0:{a,b,c,d,e,f,g}=7'b1111110;4'd1:{a,b,c,d,e,f,g}=7'b0110000;4'd2:{a,b,c,d,e,f,g}=7'b1101101;4'd3:{a,b,c,d,e,f,g}=7'b1111001;4'd4:{a,b,c,d,e,f,g}=7'b0110011;4'd5:{a,b,c,d,e,f,g}=7'b1011011;4'd6:{a,b,c,d,e,f,g}=7'b1011111;4'd7:{a,b,c,d,e,f,g}=7'b1110000;4'd8:{a,b,c,d,e,f,g}=7'b1111111;4'd9:{a,b,c,d,e,f,g}=7'b1111011;/*4'hA:{a,b,c,d,e,f,g}=7'b1110111;4'hB:{a,b,c,d,e,f,g}=7'b0011111;4'hC:{a,b,c,d,e,f,g}=7'b1001110;4'hD:{a,b,c,d,e,f,g}=7'b0111101;4'hE:{a,b,c,d,e,f,g}=7'b1001111;4'hF:{a,b,c,d,e,f,g}=7'b1000111;*/default:{a,b,c,d,e,f,g}=7'bzzzzzzz;endcaseendendmoduleEnd选做一到到二题数字系统统设计问问题数字钟实实验设计要求求设计一个个能进行行时、分分、秒计计时的十十二小时时制或二二十四小小时制的的数字钟钟,并具具有定时时与闹钟钟功能,,能在设设定的时时间发出出闹铃音音,能非非常方便便地对小小时、分分钟和秒秒进行手手动调节节以校准准时间,,每逢整整点,产产生报时时音报时时。设计提示示主控电路路计数器模模块扫描显示示主控电路路*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:指示示是否设置了了闹铃功能;;LD_h:指指示当前调整整的是小时信信号;LD_m:指指示当前调整整的是分钟信信号。拔河游戏机设计要求设计一个能进进行拔河游戏戏的电路。电路使用15个(或9个个)发光二极极管表示拔河河的“电子绳绳”,开机后后只有中间一一个发亮,此此即拔河的中中心点。游戏双方各持持一个按钮,,迅速地、不不断地按动,,产生脉冲,,谁按得快,,亮点就向谁谁的方向移动动,每按一次次,亮点移动动一次。亮点移到任一一方终端二极极管时,这一一方就获胜,,此时双方按按钮均无作用用,输出保持持,只有复位位后才使亮点点恢复到中心心。由裁判下达比比赛开始命令令后,甲乙双双方才能输入入信号,否则则,输入信号号无效。用数码管显示示获胜者的盘盘数,每次比比赛结束自动动给获胜方加加分。设计提示加/减计数器器译码器得分计数显示示电路数字式竞赛抢抢答器设计要求设计一个可容容纳四组参賽賽的数字式抢抢答器,每组组设一个按钮钮供抢答使用用。抢答器具具有第一信号号鉴别和锁存存功能,使除除第一抢答者者外的按钮不不起作用;设设置一个主持持人“复位””按钮,主持持人复位后,,开始抢答,,第一信号鉴鉴别锁存电路路得到信号后后,用指示灯灯显示抢答组组别,扬声器器发出23秒的音响。。*设置犯规电路路,对提前抢抢答和超时答答题(例如3分钟)的组组别鸣笛示警警,并由组别别显示电路显显示出犯规组组别。设置一个计分分电路,每组组开始预置110分,由主主持人记分,,答对一次加加1分,答错错一次减1分分。设计提示鉴别锁存模模块答题计时模模块计分电路模模块扫描显示模模块1.此模块块的关键是是准确判断断出第一抢抢答者并将将其锁存,,实现的方方法可使用用触发器或或锁存器,,在得到第第一信号后后将输入封封锁,使其其它组的抢抢答信号无无效。2.形成第第一抢答信信号后,用用编码、译译码及数码码显示电路路显示第一一抢答者的的组别,控控制扬声器器发出音响响,并启动动答题计时时电路。鉴别别锁锁存存模模块块洗衣衣机机控控制制器器设计计要要求求设计计一一个个洗洗衣衣机机洗洗涤涤程程序序控控制制器器,,控控制制洗洗衣衣机机的的电电机机作作如如下下规规律律运运转转::用两两位位数数码码管管预预置置洗洗涤涤时时间间((分分钟钟数数)),,洗洗涤涤过过程程在在送送入入预预置置时时间间后后开开始始运运转转,,洗洗涤涤中中按按倒倒计计时时方方式式对对洗洗涤涤过过程程作作计计时时显显示示,,用用LED表表示示电电机机的的正正、、反反转转,,如如果果定定时时时时间间到到,,则则停停机机并并发发出出音音响响信信号号。。设计提示洗涤预置时间间编码模块减法计数显示示时序电路译码驱动模块块数字频率表设计要求1.设计一个个能测量方波波信号频率的的频率计,测测量结果用十十进制数显示示。2.测量的频频率范围是110KHz,,分成两个频频段,即1999Hz,,1KHz10KHz,,用三位数码码管显示测量量频率,用LED显示表表示单位,如如亮绿灯表示示Hz,亮红红灯表示KHz。3.具有自动动校验和测量量两种功能,,即能用标准准时钟校验测测量精度。4.具有超量量程报警功能能,在超出目目前量程档的的测量范围时时,发出灯光光和音响信号号。设计提示脉冲信号的频频率就是在单单位时间内所所产生的脉冲冲个数,其表表达式为f=N/T,f为被测信号号的频率,N为计数器所所累计的脉冲冲个数,T为为产生N个脉脉冲所需的时时间。所以,,在1秒时间间内计数器所所记录的结果果,就是被测测信号的频率率。测量/校验选选择模块*计数器模块送存选择报警警模块锁存模块扫描显示模块块测量/校验选选择模块*输入信号:选选择信号selet被测信号meas测试信号test输出信号:CP1当selet=0时,为为测量状态,,CP1=meas;;当selet=1时,为为校验状态,,CP1=test。校验与测量共共用一个电路路,只是被测测信号CP1不同而已。设置1秒定时时信号(周期期为2秒),,在1秒定时时时间内的所所有被测信号号送计数器输输入端。计数器对CP1信号进行计数数,在1秒定定时结束后,,将计数器结结果送锁存器器锁存,同时时将计数器清清零,为下一一次采样测量量做好准备。。设置量程档控控制开关K,,单位显示信信号Y,当K=0时,为为1999Hz量量程档,数码码管显示的数数值为被测信信号频率值,,Y显示绿色色,即单位为为Hz;当K=1时,,为1KHz10KHz量量程档,被测测信号频率值值为数码管显显示的数值乘乘1000,,Y显示红色色,即单位为为KHz。设置超出量程程档测量范围围示警信号alert。。计数器由四四级十进制计计数构成(带带进位C)。。若被测信号号频率小于1KHz(K=0),则则计数器只进进行三级十进进制计数,最最大显示值为为999.Hz,如果被被测信号频率率超过此范围围,示警信号号驱动灯光、、扬声器报警警;若被测信信号为1KHz10KHz((K=1),,计数器进行行四位十进制制计数,取高高三位显示,,最大显示值值为9.99KHz,如如果被测信号号频率超过此此范围,报警警。左第一位左第一位电子密码锁设计要求设计一个电子子密码锁,在在锁开的状态态下输入密码码,密码共4位,用数据据开关K1K10分别代代表数字1、、2、…、9、0,输入入的密码用数数码管显示,,最后输入的的密码显示在在最右边的数数码管上,即即每输入一位位数,密码在在数码管上的的显示左移一一位。可删除除输入的数字字,删除的是是最后输入的的数字,每删删除一位,密密码在数码管管的显示右移移一位,并在在左边空出的的位上补充““0”。用一一位输出电平平的状态代表表锁的开闭状状态。为保证证密码锁主人人能打开密码码锁,设置一一个万能密码码,在主人忘忘记密码时使使用。设计提示密码输入删除除控制模块寄存模块比较模块扫描显示模模块脉冲按键电话话按键显示器器设计要求设计一个具有有7位显示的的电话按键显显示器,显示示器应能正确确反映按键数数字,显示器器显示从低位位向高位前移移,逐位显示示按键数字,,最低位为当当前显示位,,七位数字输输入完毕后,,电话接通,,扬声器发出出“嘟——嘟嘟”接通声响响,直到有接接听信号输入入,若一直没没有接听,10秒钟后,,自动挂断,,显示器清除除显示,扬声声器停止,直直到有新号码码输入。设计提提示号码输输入显显示控控制模模块主控制制模块块扫描显显示模模块乒乓球球比赛赛游戏戏机任务与与要求求设计一一个由由甲、、乙双双方参参赛,,有裁裁判的的3人人乒乓乓球游游戏机机。用8个个(或或更多多个)LED排排成一一条直直线,,以中中点为为界,,两边边各代代表参参赛双双方的的位置置,其其中一一只点点亮的的LED指指示球球的当当前位位置,,点亮亮的LED依此此从左左到右右,或或从右右到左左,其其移动动的速速度应应能调调节。。当“球球”(点亮亮的那那只LED)运运动到到某方方的最最后一一位时时,参参赛者者应能能果断断地按按下位位于自自己一一方的的按钮钮开关关,即即表示示启动动球拍拍击球球。若若击中中,则则球向向相反反方向向移动动;若若未击击中,,则对对方得得1分分。一方得得分时时,电电路自自动响响铃3秒,,这期期间发发球无无效,,等铃铃声停停止后后方能能继续续比赛赛。设置自自动记记分电电路,,甲、、乙双双方各各用2位数数码管管进行行记分分显示示,每每计满满21分为为1局局。甲、乙乙双方方各设设一个个发光光二极极管,,表示示拥有有发球球权,,每隔隔5次次自动动交换换发球球权,,拥有有发球球权的的一方方发球球才有有效。。设计思思路用双向向移位位寄存存器的的输出出端控控制LED显示示来模模拟乒乒乓球球运动动的轨轨迹,,先点点亮位位于某某一方方的第第1个个LED,,由击击球者者通过过按钮钮输入入开关关信号号,实实现移移位方方向的的控制制。也可用用计数数译码码方式式实现现乒乓乓球运运动轨轨迹的的模拟拟,如如利用用加/减计计数器器的2个时时钟信信号实实现甲甲、乙乙双方方的击击球,,由表表示球球拍的的按钮钮产生生计数数时钟钟,计计数器器的输输出状状态经经译码码驱动动LED发发亮。。任何时时刻都都保持持一个个LED发发亮,,若发发亮的的LED运运动到到对方方的终终点,,但对对方未未能及及时输输入信信号使使其向向相反反方向向移动动,即即失去去1分分。控制电电路决决定整整个系系统的的协调调动作作,必必须严严格掌掌握各各信号号之间间的关关系。。交通信信号灯灯控制制器任务与与要求求设计一一个交交通信信号灯灯控制制器,,由一一条主主干道道和一一条支支干道道汇合合成十十字路路口,,在每每个入入口处处设置置红、、绿、、黄三三色信信号灯灯,红红灯亮亮禁止止通行行,绿绿灯亮亮允许许通行行,黄黄灯亮亮则给给行驶驶中的的车辆辆有时时间停停在禁禁行线线外。。用红、绿、黄黄发光二极管管作信号灯,,用传感器或或逻辑开关作作检测车辆是是否到来的信信号。主干道处于常常允许通行的的状态,支干干道有车来时时才允许通行行。主干道亮亮绿灯时,支支干道亮红灯灯;支干道亮亮绿灯时,主主干道亮红灯灯。主、支干道均均有车时,两两者交替允许许通行,主干干道每次放行行45秒,支支干道每次放放行25秒,,设立45秒秒、25秒计计时、显示电电路。在每次由绿灯灯亮到红灯亮亮的转换过程程中,要亮5秒黄灯作为为过渡,使行行驶中的车辆辆有时间停到到禁行线外,,设立5秒计计时、显示电电路。设计思路主、支干道用用传感器检测测车辆到来情情况,实验电电路用逻辑开开关代替。45秒、25秒、5秒定定时信号可用用顺计时,也也可用倒计时时,计时起始始信号由主控控电路给出,,定时结束信信号也输入到到主控电路,,由主控电路路启、闭三色色信号灯或启启动另一计时时电路。设计思路主控电路是核核心,这是一一个时序电路路,其输入信信号为:(1)车辆辆检测信号((A,B);;(2)45秒、25秒、5秒定定时信号(C,D,E))。其状态表为::状态主主干道支支干道道时时间0 绿灯亮亮,允许通行行 红灯亮亮,禁止通行行 45秒1 黄灯灯亮,停车车 红灯灯亮,禁止止通行5秒2 红灯灯亮,禁止止通行绿绿灯亮,,允许通行行25秒3 红灯灯亮,禁止止通行黄黄灯亮,,停车5秒秒具体设计时钟产生电电路产生1HZ系统统时钟。主控电路由由两个JK触发器和和逻辑门构构成,其输输出经译码码后,控制制主干道三三色灯R、、G、Y和和支干道三三色灯r、、g、y。。三个定时器器分别产生生45秒、、25秒、、5秒定时时信号,电电路都是计计数器,并并受主控电电路和来自
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 甲方与乙方关于2024年度版钢结构厂房项目的材料供应合同2篇
- 《临床心电图》课件
- 《标准宣贯隧道》课件
- 讲述蝴蝶课件
- 人教版教学课件生物群落的演替
- 《级公路标准化施工》课件
- 商家入驻协议
- 博物馆申请报告范文
- 《j建筑面积计算》课件
- 深圳课件教学课件
- 第12课《渔家傲 秋思》课件(30张PPT) 部编版语文九年级下册
- 全新版大学英语第二版综合教程2第七单元课文翻译
- 部编版五年级语文下册:非连续性文本阅读(含答案)人教部编版
- 译林版九年级上册英语Unit 6词汇运用专项练习-
- 肩周炎的锻炼课件
- DBJ51-T 188-2022 预拌流态固化土工程应用技术标准
- 220kv变电站构支架吊装施工方案
- 巾帼英雄-妇好
- 学校秋季运动会开幕式活动策划PPT模板
- 53求因数的个数与因数和公式课件
- 晋升呼吸内科副主任医师专业技术工作总结报告
评论
0/150
提交评论