基FPGA图数处理
FIFO核设计
院 系:信息科学工程学院
专 业 班:通信1201
姓 名:
学 号:
指导教师:
2016年5月
基FPGA图数处理
FIFO核设计
The Design of FIFO Core Processing Image Data Based on FPGA
摘
代断更新换代集成电路芯片领域中完整系统包含东西更更全面现系统设计规模断扩
系统通常需时钟协调正常运行数时钟间传输会出现数丢失传输准确等问题数时钟间正确传输成系统设计问题异步FIFO(First In First Out)技术数序进入存储器序读出解决问题简单效方法
异步FIFO电路中时钟周期相位分开存互相间会影响保证数传输时效性准确性该电路中存亚稳态问题亚稳态会数传输程中出现丢失失真两问题次设计中首解决重难点
次设计FPGA基础Quartus II软件中VHDL 硬件描述语言进行逻辑描述编译出需模板模板整合组合成次设需计异步FIFO电路次设计采Quartus II软件中带EP2C5T144C8N芯片系统硬件电路中该芯片核心板设计出异步FIFO电路中包含RAM深度128 bit数宽度8 bit先软件中带仿真功进行时序仿真测试实际中进行硬件仿真测试确保该电路正常运行确保设计成功性
关键词:异步FIFO 亚稳态 空满状态判断 硬件仿真
Abstract
In the field of modern integrated circuit chip a complete system contains more and more comprehensive so the design scale of the system is constantly expanding
Now a systems usually require multiple clock coordination can be normal operation and the data between different clock transmission loss of data transmission accurate problem How to make the data between different clock correct transmission has become a major issue in system design using asynchronous FIFO (first in first out) technology the data first and then stored in according to the transmission order out is to solve this problem a simple and effective method
In the circuit of asynchronous FIFO the period and the phase of the clock exist separately which will not affect each other so as to ensure the timeliness and accuracy of data transmission The circuit also has the problem of the metastable state which will cause the loss and distortion of the data in the transmission process These two problems are the most important and difficult points in the design
The design is based on FPGA based in the Quartus II software using VHDL hardware description language to carry on the description logic a compile time needed for each template the template integration into the design required the asynchronous FIFO circuit The design uses the Quartus II software comes with the EP2C5T144C8N chip minimum system the use of the hardware circuit is the core of the chip board Designed in the asynchronous FIFO circuit the depth of the RAM is 128 bit the data width is 8 bit First use the software comes with the simulation function of its timing simulation test and then in the actual hardware simulation test to ensure the normal operation of the circuit to ensure the success of the design
Key words Asynchronous FIFO synchronization Metastable Empty full status determination Hardware simulation
目 录
摘 I
Abstract II
绪 1
1 异步FIFO设计求基原理 2
11 功设计 2
12 设计原理 3
13 设计重点 3
14 异步FIFO验证 4
2 模块设计 5
21 格雷码计数器模块 5
22 步模块 5
23 格雷码∕然码转换模块 6
24 空满标志产生模块 7
25 双端口RAM 9
3 仿真测试 10
31 模块合 10
32 时序仿真 12
321 复位功仿真测试 12
322 读写操作功仿真测试 12
323 异步FIFO电路整体仿真测试 13
324 结果汇总 14
4 硬件仿真实现 15
41 外部电路焊接 15
42 引脚分配 16
43 调试电路 18
431 异步时钟产生模块 19
432 伪机数队列产生模块 19
433 调试电路时序仿真 19
434 调试电路引脚分配 20
435 调试电路硬件仿真 20
44 异步FIFO电路硬件仿真 21
441 复位功硬件仿真 22
442 读写操作功硬件仿真 22
443 异步FIFO硬件电路整体功硬件仿真 23
444 硬件仿真结果汇总 24
结 25
致谢 26
参考文献 27
附录1格雷码计数器VHDL设计程序 28
附录2步模块VHDL设计程序30
附录3格雷码∕然码转换模块VHDL设计程序31
附录4读空状态判定VHDL设计程序32
附录5写满状态判定VHDL设计程序33
附录6伪机数队列产生模块VHDL设计程序34
绪
国外设计FIFO时通常两种方法利编程逻辑器件构造FIFO(Xilinx公司)二利VerilogVHDL等硬件描述语言FIFO功结构进行描述[1]部分EDA软件中通综合器完成EDA等硬件语言编译综合器硬件描述语言描述转变物理实现电路形式FIFO基RAM结构部分参考资料建立数组存取基础FIFO进行描述然综合器数组综合般转变寄存器结构带缺陷综合结构会非常庞造成容量FIFO设计时会产生量面积浪费甚法集成[2]
课采FPGA基础VHDL 硬件描述语言进行逻辑描述设计出基FPGA异步FIFO电路课题采FPGA中常Quartus II软件软件中带Cyclone II系列芯片中EP2C5T144C8N芯片运FPGA相关设计知识设计出异步FIFO电路该电路RAM深度128 bit数宽度8 bit软件中带仿真功进行时序仿真测试实际中进行硬件仿真测试确保该电路正常运行
文章节容安排:
第章次异步FIFO电路设计实现功设计思路进行具体描述设计原理进行详细介绍
第二章模块设计介绍该异步FIFO电路包含模块模块承担着什样功
第三章时序仿真通连线编译出单独模块组合起形成该异步FIFO电路顶层模块Quartus II软件带仿真功进行波形仿真模块进行校验
第四章硬件仿真焊接块外设电路板外设电路板连接核心板控制系统运行编译整异步FIFO电路加载核心板中编译出调试电路担机数读写时钟输入搭载外块核心板连接异步FIFO电路硬件整异步FIFO电路进行硬件仿真观察出结
1 异步FIFO设计
11 功设计
次设计Quartus II软件中带EP2C5T144C8N芯片作设计异步FIFO电路中核心模块机存储器(RAM)该FIFO电路中RAM设计深度128 bit设计数宽度8 bit该核心模块外部接口图11示模块接口说明表11示
整设计异步FIFO电路满足功信号处复位状态通读写信号控制电路读写操作写时钟信号脉升时先判断电路中数写入信号否效效八位数写入机存储器中读时钟信号脉升时理判断读信号否效效机存储器中读取八位数出机存储器中数写满时必须产生写满标志阻止数继续写入反机存储器中数读空时必须产生读空标志阻断数继续读出
图11 异步FIFO外部接口
表11 异步FIFO外部接口说明
脚名称
方
说明
rst
in
复位低电效
wr_en
in
写高电效
rd_en
in
读高电效
wr_clk
in
写时钟
rd_clk
in
读时钟
full
out
读空标志
empty
out
写满标志
Data[70]
out
写入数
q[70]
out
读出数
12 设计原理
异步FIFO结构实复杂基结构图图12示
读时钟
读址
读控制
读数
写址
写控制
写数
双端口
RAM
写址
产生逻辑
读址
产生逻辑
步电路
空满标志
产生逻辑
写时钟
复位
图12 异步FIFO基结构
图中出异步FIFO类似圆环循环结构双端口RAM读写址产生逻辑空满标志产生逻辑等组成异步FIFO拥两完全独立时钟域分分隔开写时钟域读时钟域步电路化作系统时进行读写操作空满标志信号空满标志产生逻辑步读写址较产生时空满标志信号读写信号起控制电路读写操作
13 设计重点
异步FIFO设计存两重点:需通步电路异步信号步化系统读写操作时进行降低亚稳态产生机率二系统运行中正确产生关存储器空满标志[8]
亚稳态种异步FIFO电路中必然会发生物理现象电路中触发器必须满足建立时间保持时间求电路部两毫关联时钟域间进行信号传递会满足建立保持时间种情况会系统中存未知状态输出逻辑0者逻辑1者介两者间值程称亚稳态亚稳态出现会数传输程中出现丢失失真等情况亚稳态然没办法避免通面两种简单方法降低亚稳态产生概率
[12]:
(1) 采格雷码计数器方法编写读写址格雷码种错误率低编码方式次计数时增加会位数位产生改变避免采二进制码技术时产生位改动
(2) 触发器异步信号步化触发器步信号者增加电路冗余降低亚稳态产生机率课题常D触发器采D触发器二级步方式工作电路图电路图图13示仅Q1跃变非常接时钟时候Q2会进入亚稳态[2]样系统变更加稳定
D Q
CLK
D Q
CLK
异步输入
步输出
图13 D触发器二级步
14 异步FIFO验证
设计出异步FIFO方案进行验证验证功包括:复位功数读写功等单功合格异步FIFO整体电路进行验证达次设计预期求次异步FIFO设计成功
2 模块设计
21 格雷码计数器模块
采格雷码计数器方式降低亚稳态出现概率次课题更准确判断存储器空满状态采5 bit格雷码计数器格雷码计数器模块程序详见附录
利Quartus II软件程序编译生成格雷码计数器模块图21示该模块进行时序仿真测试格雷码计数器模块仿真波形图22示波形仿真图中出格雷码计数时位数产生变化该模块设计成功
图21 格雷码计数器模块
图22 5 bit格雷码计数器仿真波形
22 步模块
前面提次异步FIFO设计降低亚稳态发生概率D触发器二级步异步信号步化
具体工作程:空满标志模块判断写满标志时步模块读指针写时钟步写指针较产生写满标志空满标志模块判断读空标志时候步模块写指针读时钟步读指针较产生读空标志步模块设计程序详见附录
利Quartus II程序编译成功生成步模块图23示继该模块进行时序仿真仿真波形图24示仿真波形图中出该模块输入异步码输入时钟步输出步码延时时间出满足二级步求该模块设计成功
图23 步模块
图24 步模块仿真波形
23 格雷码∕然码转换模块
前面处理亚稳态问题异步FIFO中读写址转换成格雷码RAM进行数存储产生空满标志读写址步进行较程中需然二进制码否操作法进行异步址信号步需读写址转换然二进制码保证电路正常运转格雷码∕然码转换模块VHDL设计程序详见附录
利Quartus II软件程序编译成功生成格雷码∕然码转换模块图25示前面介绍样模块进行波形仿真测试判定该模块正确性仿真波形图26示观察波形该模块编译正确程序详见附录
图25 格雷码∕然码转换模块
图26 模块仿真波形
24 空满标志产生模块
异步FIFO系统中起着决定性作空满标志产生模块该模块关着异步FIFO性空满标志产生模块设计基原:处什情况读写址会时存储址进行读写否会整程序运转产生错误 避免数写满继续写入造成溢出情况数覆盖没读出时避免存储空间中数读完继续读取造成信号读出解决问题异步FIFO系统设置读空写满两状态读空写满状态判定VHDL设计程序分详见附录
子模块编译出连接起构成空满标志产生模块顶层电路图27示中empty_cmp模块full_cmp模块分读空标志判定模块写满标志判定模块该顶层电路编译成功生成空满标志产生模块图28示
图27 空满标志产生模块顶层电路图
图28 空满标志产生模块
25 双端口RAM
次设计异步FIFO系统中存储器采双端口RAMAlteraMega Wizard PlugIn Manager 中相关功预生成RAM设置成双端口存储深度设置128 bit数宽度设置8 bit定制生成双端口RAM外部接口图29示
图29 双端口RAM外部接口
3 仿真测试
31 模块合
通章介绍已异步FIFO系统需模块编译出模块分格雷码计数模块步模块格雷码∕然码转换模块空满标志产生模块双端口RAM现需做讲模块整合起形成异步FIFO实体电路顶层实体图图31示图中gray模块格雷码计数器模块G2B模块格雷码∕然码转换模块full_empty空满标志产生模块dram模块双端口RAM模块成功合起接做时序仿真异步FIFO系统中包含功进行测试判断否达预期设计目标
图31 异步FIFO顶层电路图
32 时序仿真
前面介绍模块单独进行波形仿真时该模块功特性正常表现出模块合起时该模块系统中定正常行功需整异步FIFO系统中包含模块应功进行波形仿真测试确认该异步FIFO系统否满足预期设计求
321 复位功仿真测试
复位功计算器中清零功样简单实整异步FIFO系统基础设计次异步FIFO设计中采手动复位中断清空数传输重新连接传输
Quartus II软件复位功进行时序仿真波形测试结果图32示复位键复位端置1时候图中出系统正常工作复位键复位端置0时图中出读写时信号发生什样改变系统中数传输时钟没变化时系统处读空状态停止数读出该复位功满足预期方案设计求
图32 复位功时序仿真测试波形
322 读写操作功仿真测试
果整异步FIFO系统作成话RAM相心脏读写操作功等连接全身器官血写操作功时数写入RAM中进行存储读操作功数RAM中读出进行传输先写入读出
利Quartus II软件先写操作功进行时序波形仿真结果图33示先系统复位端置1保证系统正常运行写信号置1读信号置0会数输出状态始终保持变读空标志信号直0写满标志信号直1表明系统直处写满状态没进行数读出写操作功符合设计需求
样方法复位端然置1系统读操作功进行波形仿真测试写信号置0读信号置1波形仿真图图34示出系统运行会写满标志信号始终0读空标志始终1说明系统没进行数写入直进行数读出储存数读完直处读空状态出读操作功满足设计求
图33 写操作功时序仿真测试波形
图34 读操作功时序仿真测试波形
323 异步FIFO电路整体仿真测试
基功测试完电路整体进行仿真测试先系统复位端读写时均置1系统输入读时钟频率设置写时钟频率2倍运行系统波形结果图35示
图35 异步FIFO系统时序仿真测试波形1
图中出系统运行段时间读空状态非读空状态间发生周期性交变换系统始终会处写满状态说明系统时进行读写操作系统读操作速率快系统写操作速率系统永远会处写满状态时系统输入队列输出队列包含数完全样数写入读出序样存点程序运行延时说明系统完全遵先入先出原
测试完种情况反进行设置读时钟频率设置写时钟频率2倍重复面操作系统运行段时间波形结果图36示出系统会写满状态非写满状态间进行周期性交变换系统永远会处读空状态写操作速率快读操作速率输入输出队列数面样遵电路先入先出原结合图35图36出该异步FIFO整体电路设计达预期设计求
图36 异步FIFO系统时序仿真测试波形2
324 结果汇总
结束时序仿真根面时序仿真波形测试结果出该异步FIFO整体电路设计实现初预期满足功两部时钟间准确传输数先入先出读写数产生正确空满状态判断读写操作正常时进行等等说明该异步FIFO整体电路设计思路成功样波形仿真足说明问题需通外设电路板核心板连接进行硬件仿真观察结果
4 硬件仿真实现
41 外部电路焊接
整异步FIFO系统硬件仿真光系统核心板足需助外设电路板加实现需外设电路板控制数读写功数读写控制需两拨动开关加实现拨动开关原理图图41示加辅助器件焊接外设电路板图42示
GND
拨码开关
100Ω
47kΩ
控制信号输入
Vcc
图41 拨动开关原理图
图42 外设电路板
42 引脚分配
焊接外设电路板接做进行引脚分配核心板引脚异步FIFO系统电路引脚进行应分配时外设电路板需进行相应引脚分配相应功引入EP2C5T144C8N系统核心板中利Quartus II软件带引脚分配功分配引脚应图43示中需特注意rst引脚分配144引脚引脚分配完成利软件进行编译编译成功端口引脚应图44示
图43 异步FIFO电路引脚分配
图44 端口引脚应
43 调试电路
电路引脚分配完成利杜邦线核心板引脚端口外设电路板引脚端口进行应连接连接实物图45示整系统写时钟输入端位核心板中(1819AC)区域读时钟输入端位核心板(0809AC)区域写满标志输出端位核心板(1819CE(右))区域读空标志输出端位核心板(0809CE(右))区域输入数端位核心板(2426WD(右))区域输出数端位核心板(0103WD(右))区域利软件通AS接口前面设计包括引脚分配已完成完整版电路载入核心板中异步FIFO电路整硬件实物完成
图45 异步FIFO硬件电路实物
431 异步时钟产生模块
根设计实现功出设计异步FIFO系统包含异步时钟产生模块包含输入数产生模块需调试电路产生异步读写时钟信号宽度8 bit输入数队列避免异步FIFO核心板硬件突需该调试电路搭载块核心板
先Quartus II软件PLL锁相环制定出PLL锁相环会EP2C5T144C8N核心板中带50 MHz时钟进行两次分频处理次分频处理12分频产生异步输出时钟频率25 MHz次分频处理14分频产生异步输出时钟频率125 MHz两输出时钟连入外设电路板中读写时钟区域成异步FIFO硬件电路中异步读写时钟输入时钟频率周期正相差倍方便验证
432 伪机数队列产生模块
根编写程序该模块编译出数宽度8 bit伪机数队列产生模块模块数输出端连接外设电路板数输入引脚区域硬件电路需数输入程序代码详见附录
433 调试电路时序仿真
调试电路需模块组合完成电路图图46示中模块异步时钟产生模块模块伪机数产生模块
图46 调试电路
进行波形仿真仿真波形图47示出该模块设计成功
图47 调试电路仿真波形
434 调试电路引脚分配
前面章节介绍引脚分配原样该调试电路进行引脚分配引脚分表图48示引脚分配完成进行编译结果图49示
图48 调试电路引脚分配表
图49 调试电路引脚分配完成
435 调试电路硬件仿真
电路知识简单调试电路直接核心板电脑相连Quartus II软件带嵌入式逻辑分析仪SignalTap II仿真预调中采样深度设置128 bit该系统进行硬件仿真波形图图410示出波形图时序仿真时波形图差该调试电路硬件仿真成功通整调试电路包括核心板完成
图410 调试电路硬件仿真波形
44 异步FIFO电路硬件仿真
前面准备充分进行异步FIFO整电路硬件仿真根面章节中提引脚分配情况调试电路硬件异步FIFO电路硬件外设电路板连接起组成实物电路图411示中位方核心板外设电路板相连组成整异步FIFO硬件电路位放调试电路板组成整异步FIFO功测试电路然介绍样整电路包含功进行硬件仿真
图411 异步FIFO功测试电路
441 复位功硬件仿真
前面章节提调试电路硬件仿真异步FIFO功测试电路进行硬件仿真首先电路复位功进行仿真测试波形图图412示图中出波形前面复位功进行波形仿真时图形样复位键系统处读空状态数读出该电路复位功符合预期设计求
图412 复位功硬件仿真测试波形
442 读写操作功硬件仿真测试
接进行读写操作功硬件仿真分开进行先写操作进行硬件仿真仿真读操作硬件仿真方法前面介绍两功进行波形仿真方法异外设电路板中拨码开关中1号码置12号码置0写工作读没结果图413示运行段时间出直数输出直处写满状态读空状态始终没出现出写操作硬件仿真成功
反进行操作1号码拨02号码拨1读操作进行硬件仿真波形结果图414示刚写操作结果相反数输出系统直处读空状态没出现满状态情况读操作硬件仿真成功总体说异步FIFO硬件电路读写功满足设计求
图413 写操作功硬件仿真测试波形
图414 读操作功硬件仿真测试波形
443 异步FIFO硬件电路整体功软硬件仿真测试
异步FIFO硬件电路分功测试异步FIFO硬件电路整体进行测试汇总整体电路硬件仿真测试前面波形仿真测试差包含异步时钟调试电路核心板中引脚31应时钟频率25 MHz引脚32应时钟频率125 MHz换引脚两根接口线改变读写时钟频率
整体硬件电路仿真现行测试读时钟频率25 MHz写时钟频率125 MHz时情况开关拨码12号置1程序运行段时间稳定波形结果图415示出读时钟频率写时钟两倍系统读空状态非读空状态间处周期性交变换永远会处写满状态输入输出状态出系统满足先入先出求输入输出数间存短延时
关闭电路包含异步时钟调试电路核心板中引脚31引脚32应接线换开关拨码12置1重新运行电路时读时钟频率125 MHz写时钟频率25 MHz程序运行段时间波形结果图416示写时钟频率读时钟2倍西永写满状态非写满状态间处周期性交变换永远会处读空状态面测试时样输入输出数满足先入先出总体求存定延时综合两测试结果异步FIFO硬件电路成功达设计求
图415 异步FIFO系统硬件仿真测试波形1
图416 异步FIFO系统硬件仿真测试波形2
45 硬件仿真结果汇总
综合全部硬件仿真测试结果次异步FIFO电路硬件方面整体设计成功满足设计求正确复位满足意两异步读写时钟输入正确判定系统空满状态稳定宽度8 bit数两独立异步时钟间进行传输没出现数传输程中混乱丢失等情况满足先入先出设计前提等等
结
异步FIFO电路现代日新月异发展迅速电子集成电路芯片中着量运芯片电路中承载着存储运输作传输数短暂存储转发出相数缓区作忽视国集成电路芯片技术起步价较晚研发出异步FIFO电路远远满足市场军事需求异步FIFO电路技术研究断革新换代
次设计基FPGA技术采Quartus II软件中带着EP2C5T144C8N芯片系统异步FIFO技术基解简单设计需求费少功夫终获成功
针次设计求先通相关资料书籍异步FIFO电路致解FPGA技术基础情况勾画出致电路层框架根需满足功设计出相应模块进行波形仿真修改直模块仿真成功连接构成整体异步FIFO电路进行整体波形仿真修改相应错误方直仿真成功软件仿真成功足说明需进行硬件仿真发现块核心板够焊接外设电路板控制系统运行没输入电路编写调试电路模板增加块核心板搭载调试电路构建成功进行硬件仿真调试硬件仿真成功宣告整设计获成功
力问题次设计存着足处外接调试电路调试电路改变输入异步时钟频率时接口线拔交换接口显点麻烦设计两块核心电路板耗费通程序编辑调试电路异步FIFO电路搭载块核心板节省资源
致 谢
次毕业设计师学四年学知识考验存头脑里知识没什真正运学做出成果毕竟实践出真知文完成际衷心感谢予帮助老师学
次毕业设计指导教师陈道群老师感谢设计中私指导帮助设计初告诉需详细研读资料书籍需弄懂设计中需核心知识点遇懂方总耐心予讲解需总快落实陈老师刻苦积极钻研精神学术研究仔细严谨影深深佩服艰难困苦玉汝成没陈老师帮助次设计绝做出衷道声谢谢次设计中帮助学力量总渺友情力量伟学断补充提问设计新思路更改终获成功衷感谢
学校感谢学校四年栽培恩祝福学校越越繁荣昌盛桃李满天
参考文献
[1] 韩进程勇齐现英.VHDL数字集成电路设计中应[J].山东科技学学报(然科学版)2003
[2] 孟庆海张洲.VHDL基础典实例开发[M].西安交通学出版社2008
[3] 潘松黄继业.EDA技术实教程VHDL版(第四版)[M].北京科学出版社2010
[4] 潘松王国栋.VHDL实教程(修订版)[M].成电子科技学出版社2001
[5] 爱锋初秀琴等.基FPGA嵌入式系统设计[M].西安电子科技学出版社2004.
[6] 徐世伟.异步FIFO设计实现[D].西安电子科技学2007.
[7] 张永安李树华刘跃.VHDL语言设计实现单片机串行口输出串转换[J].蒙古学学报(然科学版)2004
[8] 张维旭贺占庄.基FPGA异步FIFO设计[D].西安微电子技术研究2006
[9] 赫晓莉刘洪波沈绪榜.异步FIFO中存储单元分析设计[J].计算机技术发展2007
[10] 雷海卫刘俊.FPGA中软FIFO设计实现[J]中山学2007
[11] 吴厚航 FPGA设计实战演练(逻辑篇).北京:清华学出版社2015:5055.
[12] 刘洪波龙娟郝晓莉沈绪榜.异步FIFO状态判断研究设计.西安徽电子研究.200703
[13] 汤安全.基FPGA数延迟器存储器设计[D].安徽学2014
[14] Clifford E.Cummings.Simulation and Synthesis Techniques for Asynchronous FIFO Design[C].SNUG 2002(Synopsys Users Group ConferenceSan JoseCA2002) User Papers.March 2002.
[15] Kanoopoulos NHallenbeck J J.A First InFirst out Memory for Signal Processing Applications[J]
.IEE Transactions on Circuits and System1986.556558.
附录1格雷码计数器模块VHDL设计程序
library ieee
use ieeestd_logic_1164all
use ieeestd_logic_unsignedall
use ieeestd_logic_arithall
entity gray is
port(
clk in std_logic
en in std_logic
addr_gray out std_logic_vector(4 downto 0)
)
end
architecture bhv of gray is
signal reg_g std_logic_vector(4 downto 0)
signal new_g std_logic_vector(4 downto 0)
begin
process(clken)
begin
if rising_edge(clk) then
if en '0' then
null
else
new_g < reg_g
end if
end if
end process
addr_gray < new_g
process(new_g)
variable normal std_logic_vector(4 downto 0)
variable temp_g std_logic_vector(4 downto 0)
begin
temp_g new_g
normal(4) temp_g(4)
for i in 3 downto 0 loop
normal(i) temp_g(i) xor normal(i+1)
end loop
for i in 0 to 4 loop
if (normal(i) '0' or i4)then
temp_g(i) not(temp_g(i))
exit
end if
end loop
reg_g < temp_g
end process
end
附录2步模块VHDL设计程序
library ieee
use ieeestd_logic_1164all
use ieeestd_logic_unsignedall
entity sync is
port(
clk in std_logic
addr_in in std_logic_vector(4 downto 0)
addr_out out std_logic_vector(4 downto 0)
)
end sync
architecture bhv of sync is
signal temp std_logic_vector(4 downto 0)
begin
process(clk)
begin
if rising_edge(clk) then
addr_out < temp
temp < addr_in
end if
end process
end
附录3格雷码∕然码转换模块VHDL设计程序
library ieee
use ieeestd_logic_1164all
use ieeestd_logic_unsignedall
entity G2B is
port(
gray in std_logic_vector(4 downto 0)
normbit out std_logic_vector(4 downto 0)
)
end
architecture bhv of G2B is
begin
process(gray)
variable temp_g std_logic_vector(4 downto 0)
variable temp_n std_logic_vector(4 downto 0)
begin
temp_g gray
temp_n(4) temp_g(4)
for i in 3 downto 0 loop
temp_n(i) temp_g(i) xor temp_n(i+1)
end loop
normbit < temp_n
end process
end
附录4读空状态判定VHDL设计程序
library ieee
use ieeestd_logic_1164all
use ieeestd_logic_unsignedall
entity empty_cmp is
port(
wr_addr in std_logic_vector(4 downto 0)
rd_addr in std_logic_vector(4 downto 0)
empty out std_logic
)
end
architecture bhv of empty_cmp is
begin
empty < '1' when (wr_addr(4 downto 0) rd_addr(4 downto 0))
else '0'
end
附录5写满状态判定VHDL设计程序
library ieee
use ieeestd_logic_1164all
use ieeestd_logic_unsignedall
entity full_cmp is
port(
wr_addr in std_logic_vector(4 downto 0)
rd_addr in std_logic_vector(4 downto 0)
full out std_logic
)
end
architecture bhv of full_cmp is
begin
full < '1' when (wr_addr(4) rd_addr(4)) and (wr_addr(3 downto 0) rd_addr(3 downto 0))
else '0'
end
附录6伪机数队列产生模块VHDL设计程序
library ieee
use ieeestd_logic_1164all
use ieeestd_logic_unsignedall
entity shuiji is
port(
clk in std_logic
data out std_logic_vector(7 downto 0)
)
end
architecture bhv of shuiji is
signal t std_logic
signal c1 std_logic
signal temp std_logic_vector(7 downto 0)
begin
t < temp(7) xnor temp(0)
process(clk)
begin
if rising_edge(clk) then
c1 < not c1
end if
end process
process(c1)
begin
if rising_edge(c1) then
temp < temp(6 downto 0) & t
end if
end process
data < temp
end
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档