FPGA学习笔记(一)—— 模块和端口

笔记基于解决问题的思路来书写;

1,什么是自上而下和自下而上的设计方法?

简单来说,自上而下:从顶层模块开始,对需要的模块一步一步往下分解,直到分解到无法再分解的基础模块

                  自下而上:从所需要的功能模块开始搭建,比如需要一个park模块,我就从最基本的乘法器开始搭。

一般而言,从上而下是,逻辑思路比较多,对各个模块之间的联系处理,而自下而上,是生产这些小的模块,把这些能够处理的信息流通过端口放出来。

2,什么模块呢?

模块就是一个基本的功能块,它可以是一个简单的触发器,也可是一个PARK。通过输出输出的接口被高层的模块调用。

3,什么是模块实例?和模块有什么区别?

模块的声明就类似与一个模板,比如一个处理数据的子函数,而在FPGA中,使用这个模板就可创建实际的对象。

而在模块被调用的时候,Verilog 会对这个模板创建一个唯一的模块对象,它具有独自的名字,和输入,输出。

而从模板到实际对象的这个过程就叫实例化,创建的对象叫做实例。

比如下面这个  ripple....它这个模块,通过内部的语句 T_FF 定义了4个触发器实例 tff0  tfff1 tff2 tff3,

这三个实例有自己的名字,还有输入输出。

注:模块内不可再定义模块

4, 深入探究模块内部,模块是由哪几个部分组成的?

变量声明(input,output,parameter)

数据流语句(assign , wire)

低层模块实例,(同3中模块实例)

行为语句块(always 和 initial 语句),

任务和函数 (这就太多了)

 

5,什么是端口?

模块的外部环境交互的接口,对外部环境而言,他的内部是不可见的,就相当于电路板里面的元器件芯片,我们只对他输入和取他的输出。

6,端口列表是什么?

端口列表就是一系列模块与外部环境交互的管脚,它是两部分的一个连接装置,一部分位于模块内部,一部分位于模块外部,端口外部是输出还是输入需要在模块内部进行端口声明。它有自己的顺序,还有自己的名称。

7,端口连接规则是什么?

当一个模块在另外一个模块内被调用的时候,

输入端口:从模块内部讲,必须是线网数据类型,因为在内部需要处理,只能是一个类型

                  从模块外部讲,可以是reg数据类型也可以是线网类的,这是为了能够接受各种数据类型

输出端口:从模块内部将,可以是reg数据类型也可以是线网类的,是因为可以选择输出的类型

                  从模块外部讲,必须是线网数据类型,因为模块输出的数据必须是线网类型,便于顶层的reg数据和各个模块之间数据区分。

内外两个部分最好具有相同的线宽

 

8,端口连接的方式是什么?

第一:顺序连接方式,严格对应调用模块的端口位置顺序,输入对应输入的位置,输出对应输出的位置,

第二:命名端口连接,这是用在大型的设计中,模块端口太多,一一对应太难,这样端口是按照名字连接,而不是顺序位置。

语句:  fulladd4 fa_byname(  .cout(COUT) ,  .sum(SUM)   ,  .b(B)    ,  .cin(CIN) ,  .a(A),);

这些COUT  , SUM ,B, CIN ,A就是他们的名字,

 

9,什么是层次命名?

由根模块名以及其中调用的模块实例名次序组成,比如根模块stimulus的Qbar端口,他的子模块由m1,m1的子模块为n1,那么这个端口信号为 stimulus.m1.n1.Qbar

 

 

 

 

 

 

 

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FPGA自学笔记——设计与验证JMB FPGA(可编程逻辑门阵列)是一种可编程的硬件平台,可以实现各种数字电路的设计与验证。本文将简要介绍使用FPGA自学设计与验证JMB(低功耗、高效能、集成度高的多媒体芯片)的过程。 首先,我们需要了解JMB的功能和特性。JMB是一种面向多媒体应用的芯片,具备低功耗、高效能和高集成度的优势。我们需要详细研究JMB的硬件架构和内部模块,包括处理器核、存储器模块、图像和音频处理模块等。 接下来,我们可以使用FPGA开发板来设计和验证JMB。首先,我们需要熟悉FPGA设计工具,例如Vivado或Quartus等。这些工具提供了图形化界面和硬件描述语言(HDL)等设计方法。我们可以使用HDL编写JMB的功能模块,并将其综合为FPGA可执行的位流文件。 在设计完成后,我们需要验证JMB的功能和性能。我们可以使用仿真工具(例如ModelSim或ISE Simulator)来模拟JMB在不同情况下的行为。通过设计测试程序并运行仿真,我们可以验证JMB的各个模块是否正确地工作,是否满足设计要求。 在验证完成后,我们可以将位流文件下载到FPGA开发板中进行智能芯片的物理实现和测试。通过与外部设备的连接以及相关测试程序的运行,我们可以验证JMB在实际硬件中的功能和性能。 总结起来,学习FPGA设计与验证JMB,我们需要熟悉JMB的硬件架构和内部模块,并使用FPGA开发工具进行设计与验证。通过仿真和物理实现测试,我们可以验证JMB的功能和性能。这些过程需要理论知识和实践经验的结合,希望这些笔记能够给你提供一些参考和指导。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值