【第22期】观点:IT 行业加班,到底有没有价值?

读书笔记(Verilog HDL那些事儿_建模篇1)

原创 2016年06月01日 17:07:06
  
  读书笔记(Verilog HDL那些事儿_建模篇1)
  
  说明:写代码总感觉不是很好,向前辈学习,提升自己。
  
  感悟:1: 系统 -> 封装 -> 模块 这样的层次结构不只是Verilog,基本所有的代码都是
                 可以这样划分的。
             2: “代码风格”或者“代码结构”的确是需要好好考虑的问题。相同的“代码风格”
                 便于阅读和维护。
             3: 大多数代码设计都是按照数据流先后顺序进行的,因此在各模块实现过程中
                 使用“仿顺序操作”的确可以使设计思路更清晰,当然,其中的问题就是如何从
                 千丝万缕的功能中将模块细化,这个过程很费时间,当确定了各个模块的功能,
                 整个系统构架也就呈现在了眼前,再根据系统构架优化各个模块功能,如此迭代,
                 终能实现繁杂的系统功能.
  

  进度:完毕(时间问题,只关注编程思想)


  整理来自:时间的诗

  
  
  1、系统建模 模块封装 模块
  
  2、模块封装:低级建模就是这样一回事,早期的建模,我们只是针对每某个硬件资源,建立一个“ 基
     础”而已。这个“ 基础”虽然可以调用,但是却不是真正的完成品。如果“ 基础”要成
     为完成品,那么该“ 基础”就要执行所谓的“ 封装”。
  
  3、每一个简单的功能模块,可以看似一位员工。
     每一个简单的控制模块,可以看似一位领导。
     每一个简单的组合模块,可以看似一组小组。
     每一个组合模块再组合起来,可以看似一个大组。
     每一个大组为某种“ 目的”存在,如果有独立运行的能力,就可以成为部门(接口)。
     最后由许多接口组合起来,就成为一个“ 系统”。
       
     这就是“ 低级建模”最基本思路
  
  4、笔者的建模技巧-低级建模,不仅是关心“如何建模”而已?笔者非常执着与“代码风
     格”或者“代码结构”。从实验的开始到实验的结束,笔者都是使用同样的“代码风格”。
     要如何维护好自己的代码风格,并不是这本笔记讨论的范围,但是笔者很建议读者可以
     参考笔者的“代码风格”。
  
  5、单独使用仿顺序操作缺点:
      a: 模块的重复,资源的消耗。
      b: 建模量多,连线设计繁多。
      c: 模块调用的难度。
      
    如果读者有笔者这样的耐性,这样的劳动当然是没有问题啦。但是,实际上笔者也觉得
    这样的建模方法非常“猥琐”,而且模块的连线也很困难。所以我们需要另一种“仿顺
    序操作”建模的方法,毕竟 4-1 章 和 4-2 章的方法只适合小型的“仿顺序操作”而已。
    这个方法既是“命令式的仿顺序操作”。
    
  6、所谓“命令式的仿顺序操作”就是将各个功能模块通过命令调用.
   
 
    always @ ( posedge or CLK or negedge RSTn )
    if( !RSTn )
    begin
      i <= 4'd0;
      rPin_Out <= 1'b0;
      isDone <= 1'b0;
      ......
    end
    ===> else if( Function_Start_Sig[1] )
    case( i )
      // S 摩斯码产生
      ......
      4'd 9:
      begin isDone <= 1'b1; i <= i + 1'b1; end
      4'd10:
      begin isDone <= 1'b0; i <= 4'd0;
    endcase
    ===> else if( Function_Start_Sig[0] )
    case( i )
      // 0 摩斯码产生
      ......
      4'd 9:
      begin isDone <= 1'b1; i <= i + 1'b1; end
      4'd10:
      begin isDone <= 1'b0; i <= 4'd0;
    endcase
    /*************************************************/
    
    假设我要产生 S 模式码,那么我只要往 Function_Start_Sig 
    输入 2'b10 即可。


    
  
版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

牛人经验1(逻辑工程师必须寻求转型)

需求说明:向前人学习 内容       :RTL代码设计需要向算法靠拢 来自       :时间的诗 原文:http://blog.csdn.net/verylogic/article/...

逻辑工程师必须寻求转型

所谓逻辑工程师,就是既非硬件工程师,也非软件工程师的一种职业。使用硬件编程语言verilog/VHDL开发硬件,做这种开发的人既要懂硬件,也要懂算法,最终将算法用硬件实现。这应该算得上是一个传统行业了...

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

深度学习FPGA实现基础知识12(CSDN网友--深度学习总结)

需求说明:深度学习FPGA实现知识储备 来自:http://blog.csdn.net/xudong0612/article/details/8930891 最近一时兴起打算研究下深度学习,...

读书笔记(Verilog HDL那些事儿_建模篇0)

说明:写代码总感觉不是很好,向前辈学习,提升自己。 感悟:文章作者可以将一个大工程划分为多个子模块,主要分功能模块和控制模块,一个功能一个模块的思路刚开始觉得很繁琐,但是到后来却发          ...

ASIC/FPGA设计中的仿真

一直看到各种文献中

牛人经验3(IC设计行业分类辨析)

需求说明:向前人学习 内容       :国家与个人以及技术成长 来自       :时间的诗 原文:http://blog.csdn.net/verylogic/a...

牛人经验2(国家形势与个人选择以及创业)

需求说明:向前人学习 内容       :国家与个人以及技术成长 来自       :时间的诗 原文:http://blog.csdn.net/verylogic/a...

牛人经验0(转载几个牛人的牛语录:有关FPGA和DSP和ARM的。)

需求说明:FPGA基本知识 内容       :如何确定时序约束数值 来自       :时间的诗 原文:http://blog.csdn.net/zhengmeifu/article/det...

Verilog十大基本功0(阻塞赋值与非阻塞赋值)

需求说明:Verilog设计基础 内容       :阻塞赋值和非阻塞赋值 来自       :时间的诗 前言: 阻塞与非阻塞赋值是 Verilog 语言中最基本的部分,也是让大部分...

Verilog十大基本功4 (FPGA四大设计要点)

需求说明:IC设计基础 内容       :FPGA四大设计要点 来自       :时间的诗 原文:http://www.openhw.org/article/15...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)