jchdl - RTL Event】的更多相关文章

https://mp.weixin.qq.com/s/P9uoJwIYdM-mbiR9WCtJCg   hardware modeling基于事件驱动模型,RTL中定义了多种事件. jchdl 参考了Verilog中的事件类型.   ​​   一. PosEdgeEvent   上升沿事件.对应Verilog中的posedge关键字. 使用方式为:PosEdgeEvent.of(regA),意为:观察regA的值是否从0变为1,即发生上升沿事件.   二. NegEdgeEvent   下降沿事…
https://mp.weixin.qq.com/s/2_0yQYdHlSQzPw7vX7NuHA     ​​ 因为建模方式的不同,RTL值的传播不同于GSL值的传播.   jchdl GSL模型的信息较多,知道Port的upstream Port和downstream Ports,也就是知道值的变化从哪里传过来,又要传到哪里去.所以GSL模型,使用推式传播(Push),即如果portA的值发生变化,则把变化事件推给portA的所有downstream ports.   jchdl RTL为了…
https://mp.weixin.qq.com/s/nMxYVC2djk7DdAforerZPA   使用jchdl RTL实现MOS6502 CPU的ALU.   参考链接 https://github.com/wjcdx/jchdl/blob/master/src/org/jchdl/model/rtl/example/Mos6502/Alu.java   1.创建Alu.java, 并生成构造方法和logic()方法 略   2. 根据逻辑原理,添加输入输出接口 ​​ 输入输出线作为类成…
https://mp.weixin.qq.com/s/gNN2eiJnr9N02xdZVQceDQ   ​​   相较于GSL层对物理连接的建模,RTL层提高了一个抽象层次: 把物理的触发器提取为抽象的寄存器数据类型,简化了从触发器中存取值的操作. 把物理的门和开关原语的逻辑,提取为操作符号& | ~等,甚至常见的逻辑也提取为操作符号,如移位,相等判断等:把相关物理模块之间的逻辑联系,转换为寄存器之间值的运算和操作关系:   程序 = 数据 + 算法 使用数据类型(寄存器)描述数据,使用各种操作…
https://mp.weixin.qq.com/s/Sr4ffU4TPPoUJpdInwWd6w ​​ jchdl Module类在概念上对应Verilog的module,作为所有用户自定义模块的父类. 所有用户创建的节点,必须继承Module类.Module为用户创建模块提供了很多支持方法,但把logic()方法留给子类自行定义.   如同Verilog一样,Module的logic()中,只包含Assign和Always这两种块的构建.   一. 类结构   ​​   主要属性 paren…
https://mp.weixin.qq.com/s/xtvMj5f-Uvx3vesVnH0P_A   计数器.   参考链接 https://github.com/wjcdx/jchdl/blob/master/src/org/jchdl/model/rtl/example/Counter4.java   1.创建Counter4.java, 并生成构造方法和logic()方法 略   2. 根据逻辑原理,添加输入输出接口 ​​ 输入输出线作为类成员存在.使用注解标明是input port还是…
https://mp.weixin.qq.com/s/9S29BCTcJfbpR62ALjSidA   加法器.   参考链接 https://github.com/wjcdx/jchdl/blob/master/src/org/jchdl/model/rtl/example/Adder4.java   1.创建Adder4.java, 并生成构造方法和logic()方法 略   2. 根据逻辑原理,添加输入输出接口 ​​ 输入输出线作为类成员存在.使用注解标明是input port还是outp…
https://mp.weixin.qq.com/s/OmQRQU2mU2I5d-qtV4PAwg   二选一输出.   参考链接 https://github.com/wjcdx/jchdl/blob/master/src/org/jchdl/model/rtl/example/Mux.java   1.创建Mux.java, 并生成构造方法和logic()方法 略   2. 根据逻辑原理,添加输入输出接口 ​​ 输入输出线作为类成员存在.使用注解标明是input port还是output p…
https://mp.weixin.qq.com/s/p4-379tBRYKCYBk8AZoT8A   输入两组线相与,结果输出到寄存器.   参考链接 https://github.com/wjcdx/jchdl/blob/master/src/org/jchdl/model/rtl/example/AndReg.java   1.创建AndReg.java, 并生成构造方法和logic()方法 略   2. 根据逻辑原理,添加输入输出接口 ​​ 输入输出线作为类成员存在.使用注解标明是inp…
https://mp.weixin.qq.com/s/JhUB3M1WhjAyUrN1HPIPTA   AndAnd是三输入与门模块,输出为相与的结果.   参考链接 https://github.com/wjcdx/jchdl/blob/master/src/org/jchdl/model/rtl/example/AndAnd.java   1.创建AndAnd.java, 并生成构造方法和logic()方法 略   2. 根据逻辑原理,添加输入输出接口 ​​ 输入输出线作为类成员存在.使用注…