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内实现,并且使用状态机控制。
     
  • 相关阅读:
    307. Range Sum Query
    OLI 课程 & Java入学考试的五道题
    745. Prefix and Suffix Search 查找最大index的单词
    38.Count and Say 报数
    721. Accounts Merge合并电子邮件账户
    265. Paint House II 房子涂色K种选择的版本
    【转】如何做人性化的代码审查?从高到低、用例子
    java之struts2之文件下载
    java之struts2之文件上传
    java之struts2之拦截器
  • 原文地址:https://www.cnblogs.com/wjcdx/p/9705271.html
Copyright © 2011-2022 走看看