明德扬FPGA设计模块划分方法(1)
来源:互联网 发布:linux 怎么写shell脚本 编辑:程序博客网 时间:2024/04/30 12:56
一、模块划分概述
模块划分,顾名思义是指模块的划分。但是,明德扬提出的模块划分,是广义的“模块划分”。后续所提及的“模块划分”,不单单指模块的划分,还包括模块划分好后,模块的端口及模块之间数据流向的确定。
二、模块划分原则
明德扬的模块划分原则有两条:
原则一:一个功能一个模块。
按功能划分模块是模块划分最基本的指导思想,当我们拿到一个项目后,最直接的想法就是先确定项目需要多少小功能为之服务,然后把一个个功能实现,最后通过顶层模块的例化,完成项目要求。
原则二:相同架构一个模块。
这里的相同架构不是单单是指模块整体为计数器架构、状态机架构或FIFO架构,还要求在架构内部相同或相似。比如:计数器架构中计数器的个数或计数规律相同或高度相似;状态机架构中状态的划分或跳转条件相同或高度相似。
三、模块划分端口规范
在确定模块划分后,需要明确模块的端口,及模块与模块之间的数据交互。明德扬在实际项目经验总结得到的一般模块端口信号规范。读者在完成项目模块划分后,确定端口及数据流向时参考使用。
表5.1 端口信号规范
信号
说明
clk
模块工作时钟
rst_n
系统复位信号,低电平有效
en
en有两种用法:
1.使能命令信号,类似于vld,当其为1时表示一个命令有效;
2. 使能状态指示,当其为1时表示处于使能状态。
vld
数据有效标志指示信号,表示当前的data数据有效。注意,vld不仅指示了数据有效,而且还指示了有效的次数。时钟收到多少个vld=1,就表示有多少个数据有效
data
数据总线。输入一般名称为din,输出一般名称为dout。类似的信号还有addr,len等
err
整个包文错误指示,在eop=1且vld=1有效时才有效
sop
包文起始指示信号,用于表示有效包文数据的第一个比特,当vld=1时此信号有效
eop
包文结束指示信号,用于表示有效包文数据的最后一个比特,当vld=1时此信号有效
rdy
模块准备好信号,用于模块之间控制数据发送速度
例如模块A发数据给模块B,则
rdy信号由模块B产生,连到模块A(即对于B是输出信号,对于A是输入信号);
B要保证rdy产生正确,即此信号为1时,B一定能接收数据;
A要保证仅在rdy=1时才发送数据。
- 明德扬FPGA设计模块划分方法(1)
- 明德扬FPGA设计--模块划分常用架构(2)
- 明德扬FPGA-培训班公开课-第10期-《自动化仿真的方法》
- FPGA模块划分的技巧(Design Pertitioning)
- FPGA数据传输模块设计
- 明德扬视频分享--点拨FPGA课程 100多个案例免费学
- 明德扬视频分享--点拨FPGA课程 100多个案例免费学
- 明德扬视频分享--点拨FPGA课程 100多个案例免费学
- 明德扬点拨FPGA高手进阶 第一章 软件介绍及安装
- 明德扬FPGA-培训班公开课-第2期-《算法的verilog实现》
- 明德扬FPGA-培训班公开课-第04期-《调试技巧》
- 明德扬FPGA-培训班公开课-第05期-《边缘检测工程讲解》
- 明德扬FPGA-培训班公开课-第09期-《FIFO的使用技巧》
- FPGA模块设计“瀑布模型”
- FPGA设计—VHDL语言篇(1) 模块例化
- FPGA 设计技巧(1)
- 第二周(1) App模块划分与详细设计初步进行
- 软件设计方法和模块划分
- CSDN-markdown编辑器语法——字体、字号与颜色
- Java基础———Java中的包
- matlab 图片无值NaN部分显示为白色
- MapReduce作业和任务
- 为什么基类的析构函数是虚函数?
- 明德扬FPGA设计模块划分方法(1)
- type-cast operator
- mfc标题栏重绘
- Java登录网站多个账号整理斗米简历(一)
- 设置Tomcat不自动部署
- 剑指Offer——(12)数值的整数次方
- ThinkPHP汉字乱码的处理
- C# 读取config文件
- tensorflow学习指南