zoukankan      html  css  js  c++  java
  • jchdl

    https://mp.weixin.qq.com/s/86d_sFN0xVqk1xRaRyoAkg

     
    使用rtl语法,实现简单的与门。
     
    参考链接
     
    1.创建And.java, 并生成构造方法和logic()方法
    And类继承自Module类。And类的构造方法第一个参数为父模块,用以创建模块Hierarchy。logic()方法中描述模块包含的assign和always代码块。
     
    2. 根据逻辑原理,添加输入输出接口
    输入输出线作为类成员存在。使用注解标明是input port还是output port。
     
     
    3. 在构造方法中搜集输入输出线并调用construct()方法
    首先调用父类即Module类的构造方法,以构建模块hierarchy。
    然后逐个把输入输出参数与input/output port对应上。
    然后调用construct()方法构造模块(调用一次logic()方法,搜集模块的assign/always代码块)。
     
    4. 在logic()方法中创建assign/always代码块,以及子模块
    这里只包含一个assign代码块:使用a, b对r进行复制,用assignR()方法。当a, b的值发生变化时,会调用assignR()方法更新r的值。
     
    这里this::assignR是lambda表达式的一种写法,也可以不另外创建单独的方法,如:
    亦或者:
    这种带大括号的写法,支持多条语句。
     
    提倡使用创建独立类方法的方式,这样可以清楚的表明:And类是一个模块,有输入输出接口作为属性成员,有assign/always代码块作为方法成员。
     
    5. 创建inst静态方法方便后续使用
     
    6. 创建main方法执行验证
     
    运行结果为:
     
    7. 生成Verilog
    生成定制化模块名:
     
    调用toVerilog()方法生成Verilog实现。
     
    执行结果如下:
     
  • 相关阅读:
    新加坡
    android alt + /
    豌豆荚开源技术
    有意思的
    android view
    localstorage性能
    Android WebView使用基础
    关于hash
    Android 近百个项目的源代码,覆盖Android开发的每个领域
    10个经典的Android开源项目(附源码包)
  • 原文地址:https://www.cnblogs.com/wjcdx/p/9892722.html
Copyright © 2011-2022 走看看