什么是简洁性?
我认为简洁性就是1个模块只做1件事情。把很多功能都放到1个模块中,只会带来麻烦。
不仅仅是设计时,各种功能之间相互的缠绕把设计人员绕进去,也不利于代码的阅读,影响
设计的维护。
笔者以前遇到过1个设计,就是1个GPIO模块。该模块特殊在,芯片有睡眠模式,在睡眠模
式下,时钟要关掉。但GPIO要提供睡眠唤醒功能。
为了让GPIO在睡眠模式下也能产生唤醒请求,只好引入1个低频时钟,在睡眠模式下,唤醒电路
在低频时钟下工作,并产生唤醒请求.
这种设计方案带来的后果就是,人为地引入了异步时钟,而且把时钟电路的设计复杂化了.
按照简洁性的原则,就应该分成2个模块,1个模块就是纯粹的GPIO模块,另一个模块是唤醒模
块,唤醒模块的监测信号是GPIO的输入.2个模块各自有各自的时钟,不相互干扰.也没有异步
设计的问题.