北邮数字逻辑课程设计_第1页
北邮数字逻辑课程设计_第2页
北邮数字逻辑课程设计_第3页
北邮数字逻辑课程设计_第4页
北邮数字逻辑课程设计_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

内容概要●

简易电子琴●

简易频率计●

交通灯控制●

电子钟显示课程设计实验指导●

药片装瓶系统知识准备●

主楼720实验室●

60台实验仪●

四人一组(限定每班7组)实验环境●

复习《数字逻辑与数字系统》第五章在系统编程技术●图书馆借阅《VHDL数字电路设计与应用实践教程》或硬件描述语言类书籍知识准备实验要求实验要求●熟练掌握ispEXPERT软件的使用方法●熟练掌握isp器件的使用方法●熟练掌握用VHDL进行数字逻辑电路设计●认真写出课程设计报告●熟练掌握isp器件的下载方法●7月7日~7月17日在实验室完成四个实验Multimedia1032管脚定义I/O单元全局布线通用逻辑单元输出布线I/O单元输入信号→→→→→输出信号信号流程→模16计数器设计四位二进制计数器74LS163演示_WEB74LS163(模16)ispLSI1032复位时钟信号K2K1模16计数器VHDL语言用VHDL语言设计四位二进制计数器(模16)LIBRARYieee;USEieee.std_logic_1164.all;ENTITYexample1IS

PORT(x1,x2,x3 :IN BIT; f:OUTBIT);ENDexample1;ARCHITECTURELogicFuncOFexample1IS

BEGIN

f<=(x1ANDx2)OR(NOTx2ANDx3);ENDLogicFunc;VHDL语言结构

可编程逻辑的VHDL文本设计方式●

VHDL语言结构库实体结构体每个部分通过关键字引导出来描述逻辑功能引用库中程序包x3x1x2fVHDL结构VHDL语言结构组成库程序包实体结构体配置存放已编译的实体、结构体、程序包和配置存放各种设计模块能共享的数据类型、常数、程序等描述所设计硬件系统的外部接口信号描述所设计硬件系统的内部结构和功能用来从库中选取所需单元来组成新系统实体说明、结构体格式ENTITY<实体名>IS

[类属参数说明

];

[端口说明部分

];

[实体说明部分];END<实体名>;ARCHITECTURE<结构体名>

OF

<实体名>IS

[结构体说明部分];BEGIN

<并行处理语句>

;END

<结构体名>;实体说明格式结构体格式ENTITYhalf_adderIS

PORT(A,B:INstd_logic;Co:OUTstd_logic;S:OUTstd_logic);ENDhalf_adder;ARCHITECTURErtlOFhalf_adderISSIGNALtmp1,tmp2:std_logic;BEGIN tmp1<=AORB; tmp2<=ANANDB; Co<=NOTtmp2; S<=tmp1ANDtmp2;ENDrtl;端口说明部分ABSCOABSCotmp1tmp2实体名一致实体说明、结构体格式ENTITYhalf_adderIS

PORT(A,B:INstd_logic;Co:OUTstd_logic;S:OUTstd_logic);ENDhalf_adder;ARCHITECTURErtlOFhalf_adderIS

BEGIN S<=AXORB; Co<=AANDB;ENDrtl;ABSCOΣABSCo0000011010101101ABSCo半加器LIBRARYieee;USEieee.std_logic_1164.all;LIBRARYIEEE;USEIEEE.std_logic_1164.ALL;USEIEEE.std_logic_arith.ALL;USEIEEE.std_logic_unsigned.ALL;ENTITYcounterIS

PORT(clk,areset,sset,enable:INstd_logic;cout:OUTstd_logic;q:BUFFERstd_logic_vector(3DOWNTO0));ENDcounter;ARCHITECTURErtl_arcOFcounterISBEGIN

PROCESS(clk,areset)

BEGIN

IF(areset='1')THENq<='0';

ELSIF(clk'eventANDclk='1')THEN

IF(sset='1')THENq<="1010";ELSIF(enable='1')THENq<=q+1;

ELSEq<=q;

ENDIF;

ENDIF;

ENDPROCESS;cout<='1'WHENq="1111"ANDenable='1'

ELSE'0';ENDrtl_arc;计数器的描述1同步预置为“1010”四位二进制同步计数器RQ0aresetENq0clkCLKenableSssetCOQ1Q2Q3q1q2q3coutRSENCLKq3q2q1q01×××000001×上升预置值001上升计数值加1000×保持不变标准无符号类型程序包仿真波形counter16.vhd实验一简易电子琴1234567iispLSI1032音符(C)1234567i频率(Hz)262294330349392440494523输入的主频=100KHz不同的键对100KHz进行分频K0K1K2K3K4K5K6K7设计思想多模计数器二分频计数器判断当前按键是否有效时钟信号实验一顶层多模计数器二分频计数器音符(C)1234567i频率(Hz)262294330349392440494523模381340303286255227202191提高音量使输出信号占空比为50%多模计数器输出波形:音符(C)1234567i模19117015114312811410197libraryIEEE;useIEEE.STD_LOGIC_1164.ALL;useIEEE.STD_LOGIC_ARITH.ALL;useIEEE.STD_LOGIC_UNSIGNED.ALL;entitytoneisPort(index:instd_logic_vector(7downto0);--音符输入信号code:outstd_logic_vector(6downto0);--音符显示信号high:outstd_logic;--高低音显示信号tone0:outintegerrange0to2047);--音符的分频系数endtone;architectureBehavioraloftoneisbeginsearch:process(index)--此进程完成音符到音符的分频系数译码,音符的显示,高低音阶begincaseindexiswhen"00000001"=>tone0<=773;code<="1001111";high<='1';when"00000010"=>tone0<=912;code<="0010010";high<='1';when"00000100"=>tone0<=1036;code<="0000110";high<='1';when"00001000"=>tone0<=1116;code<="1001100";high<='1';when"00010000"=>tone0<=1197;code<="0100100";high<='1';when"00100000"=>tone0<=1290;code<="0100000";high<='0';when"01000000"=>tone0<=1372;code<="0001111";high<='0';when"10000000"=>tone0<=1410;code<="0000000";high<='0';whenothers=>tone0<=2047;code<="0000001";high<='0';endcase;endprocess;endBehavioral;音阶发生器程序参见VHDL电子琴1实验一程序模块实验二简易频率计ispLSI10321~1MHz待测信号检测开始时钟基准信号100KHz1S的闸门信号内计数的结果就是被测信号的频率设计思想gate=1对被测信号进行十进制计数gate=0显示计数结果产生闸门信号及清零信号1S的闸门信号的产生方法:对100kHz时钟计数,当计满99999时产生输出信号,再经2分频后产生占空比50%的方波信号。1S1S计数显示实验三交通灯控制ispLSI1032紧急情况控制复位时钟信号1KHz设计思想六个时序状态1、初始四个方向的红灯全亮。延时1秒。2、东西方向绿灯亮,南北方向红灯亮。延时5秒。3、东西方向黄灯闪,南北方向红灯亮。延时2秒。4、东西方向红灯亮,南北方向绿灯亮。延时5秒。5、东西方向红灯闪,南北方向黄灯闪。延时2秒。6、返回2,继续运行。7、紧急情况时手动控制四个方向红灯全亮。之后返回打断时的状态继续。四个计数器:1秒、2秒、5秒、0.2秒。√√√√√√?实验三六个时序状态1秒计数器计数启动/复位1秒计数器复位并停止计数5秒计数器开始计数1秒后5秒计数器复位并停止计数2秒计数器开始计数提供闪烁信号5秒后2秒计数器复位并停止计数5秒计数器开始计数2秒后5秒计数器复位并停止计数2秒计数器开始计数提供闪烁信号5秒后2秒后S0S1S2S3S4S5所有计数器停止计数上一状态保留紧急情况按钮按下有限状态机描述单进程描述状态机ARCHITECTUREstate_machineOFstore_controllerIS

TYPEstate_typeIS(idle,decision,read,write);

SIGNALstate:state_type;BEGINone_process:PROCESS(clk)

BEGIN

IF(clk'eventANDclk='1')THEN

CASEstateIS

WHENidle=>IF(ready='1')THENstate<=decision;

ELSEstate<=idle;

ENDIF;

WHENdecision=>IF(read_write='1')THENstate<=read;

ELSEstate<=write;

ENDIF;

WHENread=>IF(ready='1')THENstate<=idle;

ELSEstate<=read;

ENDIF;

WHENwrite=>IF(ready='1')THENstate<=idle;

ELSEstate<=write;

ENDIF;

ENDCASE;

ENDIF;

ENDPROCESS;re<='1'WHENstate=readELSE'0';we<='1'WHENstate=writeELSE'0';ENDstate_machine;LIBRARYIEEE;USEIEEE.std_logic_1164.ALL;ENTITYstore_controllerISPORT(readyclkread_write:INstd_logic; we,re:OUTstd_logic);ENDstore_controller;readwritedecisionidlereadyreadyreadyreadyread_writeread_writereadyready存储控制器状态转移图用户自定义数据类型单进程状态机输出信号实验四ispLSI1032时钟信号1KHz电子钟显示设计思想顶层模块(

温馨提示

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

评论

0/150

提交评论