zoukankan      html  css  js  c++  java
  • 使用RTL进行硬件模型编程的局限性

     
     
    硬件模型编程,即Hardware Model Programming。在RTL抽象级别,硬件模型使用RTL代码描述。所谓编程指的是编写RTL代码。
     
    程序 = 数据 + 算法
     
    所以可以从两个方面来看硬件模型编程的局限性。
    (以Verilog的RTL编程为例)
     
    一. 数据能力
     
    1. 数据表达能力
     
    Verilog的RTL编码,数据只能使用一个个的wire和reg变量表达,没有高级的数据结构表达能力,用户无法自定义数据结构类型。
     
    2. 数据获取能力
     
    a. Verilog的RTL编码,数据存放在一个个的wire和reg变量中,无法一次性的获取一组数据。wire和reg所能存放的数据是十分有限的;
    b. reg数组的代价高昂;
    c. 除wire/reg数据类型外,无论是RAM/ROM,数据获取都不是实时的,需要等待数个clk之后,才能拿到想要的数据。这种交互方式较为复杂,需要使用状态机同步。
    d. 为每一个逻辑单元提供RAM/ROM访问能力是可以的,但之后我们发现这样的每一个逻辑单元都成为了一个CPU或者一个核。使用一个具有全信息访问能力的核实现一段硬件逻辑,和在这个核上跑软件实现的同样一段逻辑,这两者之间需要权衡。
     
    3. 数据存储能力
     
    a. 存储临时数据的能力有限,比如需要临时存储一组数据或者一个表格。
     
    二. 算法能力
     
    1.表达能力
     
    软件算法使用三种基本结构描述:顺序结构、选择结构、循环结构。硬件模型编程无法使用循环结构。
    硬件模型的循环结构需要使用状态机控制,在多个clk之间进行循环。
     
    2.时间限制
     
    硬件逻辑最小单元的长度需要控制在一个clk内完成,不然则需要划分到多个clk内实现,并且使用状态机控制。
     
  • 相关阅读:
    js获取UserControl (<uc1>)控件ID
    NPOI的使用
    Ajax实现页面后台button click事件无刷新弹窗
    java反射中Class对象详解和类名.class, class.forName(), getClass()区别
    反射的笔记
    MyEclipse异常关闭导致启动不了tomcat的解决方法
    java面试题05
    java面试题04
    Spring笔记03(Spring创建对象的三种方式)
    Spring笔记02(3种加载配置文件的方式)
  • 原文地址:https://www.cnblogs.com/wjcdx/p/9705271.html
Copyright © 2011-2022 走看看