精华内容
下载资源
问答
  • 编程扇入与扇出

    万次阅读 2015-05-26 15:53:21
     模块的扇出是指本模块的直属下层模块的个数。如图: 模块A的扇出为2,模块B的扇出为3,模块C的扇出为1。一个模块的扇出太大或太小都不好,但是宁可太小也不要太大了。一个函数的扇出太大就意味着它调用了很多...
    
    

    大家都知道模块化编程,也就是重复代码尽量提炼成函数,自己可以用,别人也可以用,但是提炼出什么样的函数才算好呢?这就要用到扇入与扇出的概念。

        模块的扇出是指本模块的直属下层模块的个数。如图:

    模块A的扇出为2,模块B的扇出为3,模块C的扇出为1。一个模块的扇出太大或太小都不好,但是宁可太小也不要太大了。一个函数的扇出太大就意味着它调用了很多其他函数,那么其中任何一个函数修改了都会影响到它,如果下层有函数修改了,而它没有做相应的调整,那么肯定出错,导致维护起来很不方便,也就失去了模块化的根本意义方便性,而我们都知道软件的维护成本是很高的。函数的扇出太小意味着本函数基本没有调用其他下层的函数,如果本函数只有两三句也就不提扇入扇出了,既然提了,那么意味着本函数的模块化并没有做好,有些可以提炼成下层函数的语句没有提炼。一般认为,扇出为3到4比较好,但最大不能超过7。如果一个函数扇出太大,解决方法是适当增加中间函数,一级一级调用。

        模块的扇入是指有多少个上级模块调用它。扇入越大,说明该模块可以被很多的上级模块调用,说明本模块提炼的非常好,这是我们希望的。但是不能为了获得高扇入而把不相关的东西凑成一个模块,这样的模块内聚程度很低,没有任何意义。

        综上所述,我们在设计函数的时候,要设计高扇入合理扇出(3到4)的函数。通俗点就是设计可以被很多函数调用,而它本身调用3到4个下层函数的函数。

     

    本文出自 “窈窕魑魅” 博客,请务必保留此出处http://yaotiaochimei.blog.51cto.com/4911337/861438


    设计高扇入、合理扇出(小于7)的函数。


    说明:扇出是指一个函数直接调用(控制)其它函数的数目,而扇入是指有多少上级函数调用它。


    扇出过大,表明函数过分复杂,需要控制和协调过多的下级函数;而扇出过小,如总是1,表明函数的调用层次可能过多,这样不利程序阅读和函数结构的分析,并且程序运行时会对系统资源如堆栈空间等造成压力。函数较合理的扇出(调度函数除外)通常是3-5。扇出太大,一般是由于缺乏中间层次,可适当增加中间层次的函数。扇出太小,可把下级函数进一步分解多个函数,或合并到上级函数中。当然分解或合并函数时,不能改变要实现的功能,也不能违背函数间的独立性。


    扇入越大,表明使用此函数的上级函数越多,这样的函数使用效率高,但不能违背函数间的独立性而单纯地追求高扇入。公共模块中的函数及底层函数应该有较高的扇入。


    较良好的软件结构通常是顶层函数的扇出较高,中层函数的扇出较少,而底层函数则扇入到公共模块中。

    展开全文
  • 遇到一道Python二级练习题。 第一次听说扇入扇出。 扇入:是指直接调用该模块的...为了控制模块的复杂性,一个模块的扇出不宜过大,一般认为不要超过7。 (自己理解:调用别人多少次,出去多少次,形状像扇子...

            遇到一道Python二级练习题。


            


            第一次听说扇入扇出。

    扇入:是指直接调用该模块的上级模块的个数。扇入大表示模块的复用程序高。扇入大些,一般不会影响问题的复杂性,而且扇入越大,说明该模块的复用性越好。 (自己理解:被调用多少次,被入多少次,形状像扇子,所以叫扇入

    扇出:是指该模块直接调用的下级模块的个数。扇出大表示模块的复杂度高。为了控制模块的复杂性,一个模块的扇出不宜过大,一般认为不要超过7。  (自己理解:调用别人多少次,出去多少次,形状像扇子,所以叫扇出

    设计良好的软件结构,通常顶层扇出比较大,中间扇出小,底层模块则有大扇入。

    展开全文
  • 一个模块调用其他模块的个数,称为该模块的扇出。扇出越大,设计该模块时需要考虑的问题就越多,因而复杂性越高。 一个模块被其他模块调用的个数,称为该模块的扇入。扇入大些,一般不会影响问题的复杂性,而且扇入...

    一个模块调用其他模块的个数,称为该模块的扇出。扇出越大,设计该模块时需要考虑的问题就越多,因而复杂性越高。

    一个模块被其他模块调用的个数,称为该模块的扇入。扇入大些,一般不会影响问题的复杂性,而且扇入越大,说明该模块的复用性越好。

    大一般是因为缺乏中间层次,应该适当增加中间层次的模块。扇出太小时可以把下级模块进一步分解成若干个子功能模块,或者合并到它的上级模块中去。设计良好的软件结构,通常顶层扇出比较大,中间扇出小,底层模块则有大扇入。扇入:一个门的输入定义为门的输入的数目。

    在软件设计中,扇入和扇出的概念是指应用程序模块之间的层次调用情况。按照结构化设计方法,一个应用程序是由多个功能相对独立的模块所组成。

    参考资料:百度百科

    转载于:https://www.cnblogs.com/zshuai1993/p/10174907.html

    展开全文
  • 扇入、扇出系数 扇入系数是指门电路允许的输入端...一个模块的扇出数过大或过小都不理想,过大比过小更严重。一般认为扇出的上限不超过7。扇出过大意味着管理模块过于复杂,需要控制和协调过多的下级。解决的办法是...

    扇入、扇出系数

    扇入系数是指门电路允许的输入端数目。一般门电路的扇入系数为1—5,最多不超过8。扇出系数是指一个门的输出端所驱动同类型门的个数,或称负载能力。一般门电路的扇出系数为8,驱动器的扇出系数可达25。扇出系数体现了门电路的负载能力。
    一个模块的扇出数过大或过小都不理想,过大比过小更严重。一般认为扇出的上限不超过7。扇出过大意味着管理模块过于复杂,需要控制和协调过多的下级。解决的办法是适当增加中间层次。

    一个模块的扇入是指有多少个上级模块调用它。扇入越大,表示该模块被更多的上级模块共享。这当然是我们所希望的。但是不能为了获得高扇人而不惜代价,例如把彼此无关的功能凑在一起构成一个模块,虽然扇人数高了,但这样的模块内聚程度必然低。这是我们应避免的。

    设计得好的系统,上层模块有较高的扇出,下层模块有较高的扇人。其结构图像清真寺的塔,上面尖,中间宽,下面小。
    多扇出问题,通常是指用一个节点驱动多个下级逻辑器件,此问题会严重影响FPGA布线的稳定性,设计的时候要多加注意,此时采用的是复制寄存器策略。

    举个例子: CLK为系统时钟,M为1MHz方波信号,由于M信号驱动的模块较多,所以M的扇出较多,为了减少扇出,用系统时钟采样,将M信号驱动7个D触发器,然后将7个D触发器的输出端分给7个模块,这样每个复制点(DUP0~DUP6)平均扇出变为原来的1/7,M的信号扇出变为7,这样就减少了每个信号的扇出,优化了逻辑,也提高了设计的整体性能。简而言之,就是将一路信号用D触发器和CLK将其分成两路信号,或者是更多路的信号,再让这些信号来驱动下面的各个模块。

    如何判断是系统的问题是由于多扇出而导致的呢。我是这样判断的,因为我的模块是一个一个写,一块一块的调试的,所以在分开调试的时候没有出任何问题,当所有的综合在一起的时候,就出现了有一个模块的信号总是不正常,单独调试该模块的时候又正常,然而这两个模块之间又没有什么交互信号,所以,就把问题定位在这个共用信号的驱动能力上了,最终曾加了D触发器,解决了这个问题。

    另外经高手指点,还有一种方法是将这个频率信号放在CLK的管脚上,因为时钟管脚的驱动能力比一般的IO口要大一些,所以也就能够带动更多的逻辑门。

    展开全文
  • 扇入扇出

    2016-01-07 21:41:11
    在软件设计中,扇入和扇出的概念是指应用程序模块之间的层次调用情况。...扇出大表示模块的复杂度高,需要控制和协调过多的下级模块;但扇出过小(例如总是1)也不好。扇出过大一般是因为缺乏中间层次,应该适当增加
  • 扇入和扇出

    2017-08-30 23:19:06
    扇出大表示模块的复杂度高,需要控制和协调过多的下级模块;但扇出过小(例如总是1)也不好。扇出过 大一般是因为缺乏中间层次,应该适当增加中间层次的模块。扇出太小时可以把下级模块进一步分解成若干个子功能...
  • 扇入与扇出

    千次阅读 2019-01-08 01:42:23
    扇入:该模块被调用的次数,扇入大,说明该模块的复用性好。 扇出:该模块调用其他模块的个数,扇出大,说明该模块的业务逻辑复杂。 因此,扇入大是好事,扇出大是坏事。...
  • 在软件设计中,扇入和扇出的概念是指应用程序模块之间的层次调用情况。 按照结构化设计方法,一个应用...扇入:是指直接调用该模块的 上级模块的个数。扇入大表示模块的复用程序高。 扇出:是指该模块直...
  • 模块化设计一般准则

    千次阅读 2011-02-28 16:30:00
    1.改进软件结构,提高模块独立性(易于合作开发、系统维护);2. 顶层扇出高,中间扇出少,底层高扇入;什么是扇入和扇出? 在软件设计中,扇入和...一个模块的扇出数过大或过小都不理想,过大比过小更严重。一般认
  • verilog 对高扇出的理解及改进

    千次阅读 2018-09-07 13:56:21
    具体扇出多少算是高扇出,这跟时钟频率有关系,时钟频率越高,所允许的扇出数越低。 影响:高扇出的直接影响就是net delay 比较大,影响时序收敛。 改进:高扇出常用的三种改进方法: 1.复制寄存器 2.max_fanout...
  • Fanout,即扇出,指模块直接调用的下级模块的个数,如果这个数值过大的话,在FPGA直接表现为net delay较大,不利于时序收敛。因此,在写代码时应尽量避免高扇出的情况。但是,在某些特殊情况下,受到整体结构设计的...
  • 扇出和扇入

    千次阅读 2012-09-25 22:36:55
    在软件设计中,扇入和扇出的概念是指应用程序模块之间的层次调用情况。...扇出大表示模块的复杂度高,需要控制和协调过多的下级模块;但扇出过小(例如总是1)也不好。扇出过 大一般是因为缺乏中间层次,应该适当增加
  • Xilinx中解决高扇出的三种方法

    千次阅读 2019-07-17 19:05:12
    Fanout,即扇出,指模块直接调用的下级模块的个数,如果这个数值过大的话,在FPGA直接表现为net delay较大,不利于时序收敛。因此, 在写代码时应尽量避免高扇出的情况。但是,在某些特殊情况下,受到整体结构设计的...
  • 什么是扇入和扇出

    2018-08-25 20:18:09
    什么是扇入和扇出?  在软件设计中,扇入和扇出的概念是指应用程序模块之间的层次...扇出大表示模块的复杂度高,需要控制和协调过多的下级模块;但扇出过小(例如总是1)也不好。扇出过 大一般是因为缺乏中间层次...
  • 技巧:同一层上模块的总个数的最大值。 最大扇入数 技巧:某个模块上面最多有几条线引入,最大数就是几。 本图因为第二层有n个模块,模块n.1上有n条线(省略号) ,故最大扇入数为n。 最大扇出数 技巧:某个模块...
  • 什么是扇入和扇出? 

    千次阅读 2020-04-01 11:41:53
    在软件设计中,扇入和扇出的概念是指应用程序模块之间的层次调用...扇出大表示模块的复杂度高,需要控制和协调过多的下级模块;但扇出过小(例如总是1)也不好。扇出过大一般是因为缺乏中间层次,应该适当增加中间层...
  • 什么是扇入和扇出

    万次阅读 2016-01-08 15:12:22
    什么是扇入和扇出? 在软件设计中,扇入和扇出的概念是指应用程序模块之间的层次调用情况。...扇出大表示模块的复杂度高,需要控制和协调过多的下级模块;但扇出过小(例如总是1)也不好。扇出
  • 从扇入扇出浅谈SOLID五大原则 何谓扇入扇出 扇入(fan-in):是指直接调用该...扇出大表示模块的复杂度高,需要控制和协调过多的下级模块;但扇出过小(例如总是1)也不好。扇出过大一般是因为缺乏中间层次,应该适当增
  • 扇入扇出和pipeline最大区在于,管线是串行,但是扇入扇出是并行。并行是指,一个管线可以接收其它多个数据源输入,前提是管线对于多个数据源输入顺序是不敏感。 一个扇入扇出模块示例图如下: 输入管线...
  • FPGA优化之高扇出

    2018-10-30 11:10:04
     Fanout即扇出,模块直接调用的下级模块的个数,如果这个数值过大的话,在FPGA直接表现为net delay较大,不利于时序收敛。因此,在写代码时应尽量避免高扇出的情况。但是,在某些特殊情况下,受到整体结构设计的...

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 137
精华内容 54
关键字:

模块的扇出