版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 E D A 技 术 课 程 教 学讲授:伍宗富8/14/2022湖南文理学院电气与信息工程学院第 九 讲 存储器与状态机设计 教学目的:使学生掌握存储器与状态机的设计方法。 教学重点:存储器与状态机逻辑电路设计(SRAM与A/D转换控制) 教学难点: A/D转换控制。 教学方法:讲授法、计算机辅助法。 课时计划:2学时 使用教材:EDA技术及应用谭会生等西安:西安电子科技大学出版社 主要参考文献: 1 徐光辉等CPLD/FPGA的开发和应用M北京:电子工业出版社 2 侯伯亨等.VHDL硬件描述语言与数字逻辑电路设计M.西安:西安电子科技大学出版社 3 4 周立功等SOPC嵌入式系统基础教程M
2、北京:北京航空航天大学出版社课题:存储器与状态机设计一、ROM的VHDL设计二、SRAM的VHDL设计三、FIFO的VHDL设计四、状态机的VHDL设计六、作业五 、课堂小结一、ROM的VHDL设计LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ROM4 IS PORT(EN:IN STD_LOGIC; ADDR:IN STD_LOGIC_VECTOR(7 DOWNTO 0); DOUT:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);END ENTITY ROM4
3、;ARCHITECTURE ART OF ROM4 IS BEGIN PROCESS(EN,ADDR) BEGIN IF EN=1 THEN CASE ADDR IS WHEN 00000000=DOUTDOUTDOUTDOUTDOUT= 00000000; END CASE; END IF; END PROCESS;END ARCHITECTURE ART;二、SRAM的VHDL设计-8x8位双口RAMLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNE
4、D.ALL;ENTITY SRAM IS GENERIC(WIDTH:INTEGER:=8; DEPTH:INTEGER:=8; ADDER:INTEGER:=3); PORT(DATAIN:IN STD_LOGIC_VECTOR(WIDTH-1 DOWNTO 0); DATAOUT:OUT STD_LOGIC_VECTOR(WIDTH-1 DOWNTO 0); CLOCK:IN STD_LOGIC; WE,RE:IN STD_LOGIC; WADD:IN STD_LOGIC_VECTOR(ADDER-1 DOWNTO 0); RADD:IN STD_LOGIC_VECTOR(ADDER-1
5、DOWNTO 0);END ENTITY SRAM;ARCHITECTURE ART OF SRAM IS TYPE MEM IS ARRAY(0 TO DEPTH-1) OF STD_LOGIC_VECTOR(WIDTH-1 DOWNTO 0); SIGNAL RAMTMP:MEM; BEGIN-写进程 PROCESS(CLOCK) BEGIN IF (CLOCKEVENT AND CLOCK=1) THEN IF(WE=1)THEN RAMTMP(CONV_INTEGER(WADD)=DATAIN; END IF; END IF; END PROCESS;-读进程 PROCESS(CLOC
6、K) BEGIN IF(CLOCKEVENT AND CLOCK=1)THEN IF (RE=1) THEN DATAOUT=RAMTMP(CONV_INTEGER(RADD); END IF; END IF; END PROCESS;END ARCHITECTURE ART;二、SRAM的VHDL设计三、FIFO的VHDL设计- REG_FIFO .VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY REG_FIFO IS
7、 GENERIC(WIDTH:INTEGER:=8; DEPTH:INTEGER:=8; ADDR:INTEGER:=3); PORT(DATAIN:IN STD_LOGIC_VECTOR(WIDTH-1 DOWNTO 0); DATAOUT:OUT STD_LOGIC_VECTOR(WIDTH-1 DOWNTO 0); ACLR:IN STD_LOGIC; CLOCK:IN STD_LOGIC; WE:IN STD_LOGIC; RE:IN STD_LOGIC; FF:OUT STD_LOGIC;-满标志 EF:OUT STD_LOGIC);-空标志END ENTITY REG_FIFO;三
8、、FIFO的VHDL设计ARCHITECTURE ART OF REG_FIFO IS TYPE MEM IS ARRAY(DEPTH-1 DOWNTO 0) OF STD_LOGIC_VECTOR(WIDTH-1 DOWNTO 0); SIGNAL RAMTMP:MEM; SIGNAL WADD:STD_LOGIC_VECTOR(ADDR-1 DOWNTO 0); SIGNAL RADD:STD_LOGIC_VECTOR(ADDR-1 DOWNTO 0); -SIGNAL WORDS:STD_LOGIC_VECTOR(ADDR-1 DOWNTO 0); SIGNAL W,W1,R,R1:IN
9、TEGER RANGE 0 TO 8; BEGIN三、FIFO的VHDL设计WRITE_POINTER:PROCESS(ACLR,CLOCK) ISBEGIN IF (ACLR=0) THEN WADD0); ELSIF (CLOCKEVENT AND CLOCK=1) THEN IF (WE=1) THEN -IF (WADD=WORDS) THEN IF (WADD=7) THEN WADD0); ELSE WADD=WADD+1; END IF; END IF; END IF; W=CONV_INTEGER(WADD); W1=W-1;END PROCESS WRITE_POINTER;
10、-写操作进程WRITE_RAM:PROCESS(CLOCK) ISBEGIN IF (CLOCKEVENT AND CLOCK=1) THEN IF (WE=1) THEN RAMTMP(CONV_INTEGER(WADD)=DATAIN; END IF; END IF;END PROCESS WRITE_RAM;-写指针修改进程三、FIFO的VHDL设计-读指针修改READ_POINIER:PROCESS(ACLR,CLOCK) ISBEGIN IF (ACLR=0) THEN RADD0); ELSIF (CLOCKEVENT AND CLOCK=1) THEN IF (RE=1) THE
11、N -IF (RADD=WORDS) THEN IF (RADD=7) THEN RADD0); ELSE RADD=RADD+1; END IF; END IF; END IF; R=CONV_INTEGER(RADD); R1=R-1;END PROCESS READ_POINIER;-读操作进程READ_RAM:PROCESS(CLOCK)BEGIN IF (CLOCKEVENT AND CLOCK=1) THEN IF (RE=1) THEN DATAOUT=RAMTMP(CONV_INTEGER(RADD); END IF; END IF;END PROCESS READ_RAM;三
12、、FIFO的VHDL设计-产生满标志进程FFLAG:PROCESS(ACLR,CLOCK)BEGIN IF (ACLR=0) THEN FF=0; ELSIF (CLOCKEVENT AND CLOCK=1) THEN IF (WE=1 AND RE=0) THEN -IF (WADD=RADD-1) OR (WADD=DEPTH-1) AND (RADD=0) THEN IF(W=R1)OR(WADD=CONV_STD_LOGIC_VECTOR(DEPTH-1,3) AND (RADD=000) THEN FF=1; END IF; ELSE FF=0; END IF; END IF;END
13、 PROCESS FFLAG;三、FIFO的VHDL设计-产生空标志进程EFLAG:PROCESS(ACLR,CLOCK) BEGIN IF (ACLR=0) THEN EF=0; ELSIF (CLOCKEVENT AND CLOCK=1) THEN IF (RE=1 AND WE=0) THEN -IF (WADD=RADD+1) OR (RADD=DEPTH-1)AND(WADD=0) THEN IF(R=W1)OR(RADD=CONV_STD_LOGIC_VECTOR(DEPTH-1,3) AND (WADD=000) THEN EF=1; END IF; ELSE EF=0; END
14、 IF; END IF;END PROCESS EFLAG;END ARCHITECTURE ART;三、FIFO的VHDL设计仿真结果:空标志满标志四、状态机的VHDL设计典型的状态机:摩尔(MOORE)状态机和米立(MEALY)状态机。摩尔状态机:输出只是当前状态值的函数,并且仅在时钟 边沿到来时才发生变化。米立状态机:输出则是当前状态值、当前输出值和当前输 入值的函数。注:对于这两类状态机,控制定序都取决于当前状态和输入信号。大多数实用的状态机都是同步的时序电路,由时钟信号触发状态的转换。时钟信号同所有的的边沿触发的状态寄存器和输出寄存器相连,这使得状态的改变发生在时钟的上升沿。 此外,
15、还利用组合逻辑的传播延迟实现状态机存储功能的异步状态机,这样的状态机难于设计并且容易发生故障,所以一般用同步时序状态机。四、状态机的VHDL设计 【例】 基于状态机的ADC0809与SRAM6264的通信控制器的设计。下图是该控制器ADTOSRAM与ADC0809及SRAM6264接口示意图。四、状态机的VHDL设计 【例】 基于状态机的ADC0809与SRAM6264的通信控制器的设计。-VHDL源程序ADTOSRAM.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY ADTO
16、SRAM IS PORT( -ADC0809接口信号 DIN:IN STD_LOGIC_VECTOR(7 DOWNTO 0); -0809转换数据输入口 CLK,EOC:IN STD_LOGIC; -CLK:状态机工作时钟;EOC:转换结束状态信号 RST:IN STD_LOGIC; -系统复位信号 ALE:OUT STD_LOGIC; -0809采样通道选择地址锁存信号 START:OUT STD_LOGIC; -0809采样启动信号,上升沿有效 OE:OUT STD_LOGIC;-转换数据输出使能,接0809的ENABLE(PIN 9) ADDA:OUT STD_LOGIC; -0809采
17、样通道地址最低位 -SRAM 6264接口信号 CS:OUT STD_LOGIC; -6264片选控制信号,低电平有效 RD,WR:OUT STD_LOGIC;-6264读/写控制信号,低电平有效 RAM_DIN:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);-6264数据写入端口 ADDRESS:OUT STD_LOGIC_VECTOR(12 DOWNTO 0);-地址输出端口END ENTITY ADTOSRAM;四、状态机的VHDL设计 【例】 基于状态机的ADC0809与SRAM6264的通信控制器的设计。-VHDL源程序ADTOSRAM.VHDARCHITECTU
18、RE ART OF ADTOSRAM ISTYPE AD_STATES IS(ST0,ST1,ST2,ST3,ST4,ST5,ST6,ST7);-A/D转换状态定义TYPE WRIT_STATES IS (START_WRITE,WRITE1,WRITE2,WRITE3,WRITE_END); -SRAM数据写入控制状态定义SIGNAL RAM_CURRENT_STATE,RAM_NEXT_STATE:WRIT_STATES; SIGNAL ADC_CURRENT_STATE,ADC_NEXT_STATE:AD_STATES;SIGNAL ADC_END:STD_LOGIC; -0809数据转
19、换结束并锁存标志位,高电平有效SIGNAL LOCK:STD_LOGIC; -转换后数据输出锁存信号SIGNAL ENABLE:STD_LOGIC; -A/D转换允许信号,高电平有效SIGNAL ADDRES_PLUS:STD_LOGIC;-SRAM地址加1时钟信号SIGNAL ADC_DATA:STD_LOGIC_VECTOR(7 DOWNTO 0);-转换数据读入锁存器SIGNAL ADDRES_CNT:STD_LOGIC_VECTOR(12 DOWNTO 0);-SRAM地址锁存器BEGIN ADDA=1;-ADDA=1,ADDB=0,ADDC=0选A/D采样通道为IN-1 RD=1;
20、四、状态机的VHDL设计 【例】 基于状态机的ADC0809与SRAM6264的通信控制器的设计。-VHDL源程序ADTOSRAM.VHD-ADC0809采样控制状态机 ADC:PROCESS(ADC_CURRENT_STATE,EOC,ENABLE) -A/D转换状态机组合电路进程BEGIN IF (RST=1) THEN ADC_NEXT_STATEALE=0;START=0;OE=0;LOCK=0;ADC_END=0;-A/D转换初始化 IF (ENABLE=1) THEN ADC_NEXT_STATE=ST1;-允许转换,转下一状态 ELSE ADC_NEXT_STATEALE=1;S
21、TART=0;OE=0;LOCK=0;ADC_END=0; ADC_NEXT_STATEALE=1;START=1;OE=0;LOCK=0;ADC_END=0; ADC_NEXT_STATEALE=1;START=1;OE=0;LOCK=0;ADC_END=0;-延迟一个脉冲周期 IF (EOC=0) THEN ADC_NEXT_STATE=ST4; ELSE ADC_NEXT_STATEALE=0;START=0;OE=0;LOCK=0;ADC_END=0; IF(EOC=0)THEN ADC_NEXT_STATE=ST5;-转换结束,转下一状态 ELSE ADC_NEXT_STATEALE
22、=0;START=0;OE=1;LOCK=1;ADC_END=1; ADC_NEXT_STATEALE=0;START=0;OE=1;LOCK=1;ADC_END=1; ADC_NEXT_STATEALE=0;START=0;OE=1;LOCK=1;ADC_END=1; ADC_NEXT_STATEADC_NEXT_STATE=ST0;-所有闲置状态导入初始态 END CASE; END IF;END PROCESS ADC;四、状态机的VHDL设计 【例】 基于状态机的ADC0809与SRAM6264的通信控制器的设计。-VHDL源程序ADTOSRAM.VHDAD_STATE:PROCESS
23、(CLK) -A/D转换状态机时序电路进程BEGIN IF(CLKEVENT AND CLK=1)THEN ADC_CURRENT_STATE=ADC_NEXT_STATE;-在时钟上升沿,转至下一状态 END IF;END PROCESS AD_STATE;-由信号CURRENT_STATE将当前状态值带出此进程DATA_LOCK:PROCESS(LOCK) BEGIN-此进程中,在LOCK的上升沿,将转换好的数据锁入锁存器ADC_DATA中 IF (LOCK=1AND LOCKEVENT) THEN ADC_DATA=DIN; END IF;END PROCESS DATA_LOCK;-SRAM数据写入控制状态机WRIT_STATE:PROCESS(CLK,RST)-SRAM写入控制状态机时序电路进程BEGIN IF RST=1 THEN RAM_CURRENT_STATE=START_WRITE;-系统复位 ELSIF(CLKEVENT AND CLK=1) THEN RAM_CURRENT_STATECS=1;WR=1;ADDRES_PLUS=0; IF (ADDRES_CNT=1111111111111) THEN -数据写入初始化 ENABLE=0; -SRAM地址计数器已满,禁止A/D转换 RAM_NEXT_STATE=START_WRITE;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025北京延庆区高二(上)期中语文试题及答案
- 计算机行业市场前景及投资研究报告:算电协同中国AIDC电力解决方案
- 脑梗死护理考核试题及答案解析
- 2026北京平谷区初三一模语文试题含答案
- 2026高中必修上《琵琶行》教学课件
- 医院用药规范巡查制度
- 医院采购项目质控管理制度
- 协管员月考核制度
- 卫生室药品管理奖惩制度
- 卫生评比奖励制度
- 装饰装修质量通病防治措施培训课件
- 超星尔雅学习通《美术鉴赏(北京大学)》2025章节测试附答案
- FANUC机器人ARC Mate 120iD和M-20iD机械结构手册
- DB37T 2401-2022 危险化学品岗位安全生产操作规程编写导则
- 项管系统培训变更与修正
- 红色文化知识题【高中组共计967题】1 (1)附有答案
- HYT 271-2018 海洋多参数水质仪检测方法(正式版)
- 曲黎敏《黄帝内经》-全套讲义
- 万宁市病死畜禽无害化处理中心项目 环评报告
- 《引航》系列特刊2-《共建绿色丝绸之路进展、形势与展望》
- 全国优质课一等奖小学道德与法治六年级下册《地球-我们的家园》第1课时(完美版课件)
评论
0/150
提交评论