【Day10】模组化及引用模组

模组

在一个 .V 档案里面,可以有很多个 module,但是 Top Module 只会有一个,所以档名必须以 Top Module.v 来命名来辨别 Top Module。


模组化的概念

  • 每个模组的实际意义是一块实际的硬体电路。
  • 每一块模组都有自己的功能,再透过连接各个模组来达成特定功能。
  • 模组与模组之间也会是并行处理的。

引用模组

为甚麽会需要引用模组呢?

因为通常一个大模组往往会已由许多小模组所组成的,这样便有以下好处:

  • 一方面是可读性比较好,往後在维护方面也比较方便,因为电路分为一块一块的比较好去知道各个模块的功能,再针对特定的模块做优化就好。
  • 再来是除错,合成为大电路前,如果可以先提前测试每个模块功能是否正常,那 debug 起来也会比较快

引用模组的两种方法

将模组的埠与其他模组连接的方法有两种,分别是:

1.依照要引用之模组的埠列「顺序」(in order)来连接,也就是如果要引用的模组是:

module test(
  clkSys, 
  rst_n
);
..
...
....
endmodule

那麽引用时括号内的顺序就会对应到该模组括号内的顺序,例如:

reg clk;
reg reset_n;
test U0(clk, reset_n);//module instantiation

那麽这个模组的 {clk, reset_n} 就会接到 test 模组的 {clkSys, rst_n}

2.依「指定名称」(by name)的方法来连接,会以 " .该模组脚位(此模组脚位) " 来引用,例如:

reg clk;
reg reset_n;
//module instantiation
test U0(
  .clk(clk), 
  .reset_n(reset_n)
);

这样也会是一样的效果~~

而不管是哪一种引用法引用时都要给模组命名,像这边就是命名为 "U0"

对於一个较大的电路来说,可能接脚会非常的多,此时如果以 in order 的方式来连接,这个时候就算边看边打也相当不方便且容易犯错,所以通常我们会以 by name 的方法来连接来避免不必要的失误。


<<:  [day10]串接API实测-订单建置API

>>:  Android学习笔记16

[Day22] 计时器 setTimeout()

图片出处:https://tw.crazypng.com/56.html 在上一篇读 callba...

Day06 补充笔记2

Export Modules 汇出程序模组 在React中可以透过 Export 语法来汇出程序模组...

qt 自定义控件 不同萤幕

自定义了一个数字键盘: 自己电脑跑起来是正常的,但是切换到一个分辨率不一样的电脑时就跑掉了,不整齐;...

活动图教程

活动图类似於业务工作流程图或简单的流程图,具有更丰富的语义。它描述了系统活动,或进行活动的人,以及这...

30天零负担轻松学会制作APP介面及设计【DAY 22】

大家好,我是YIYI,今天我要来聊聊我的架构图。 文字版架构图 以COVER放在第一层 第二层是HO...