硬件模型编程,即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内实现,并且使用状态机控制。
 

使用RTL进行硬件模型编程的局限性的更多相关文章

  1. 阅读基于sketch的软件定义网络测量数据平面硬件模型

    概要 硬件实现 基于sketch 功能:采集包数.流长数据,恢复五元组 重点:高速条件下性能较好,节省硬件资源 摘要: 提出一种基于sketch 数据结构的软件定义测量数据平面硬件模型,并在以现场可编 ...

  2. WSAEventSelect模型编程 详解

    转自:http://blog.csdn.net/wangjieest/article/details/7042108 WSAEventSelect模型编程 WSAEventSelect模型编程这个模型 ...

  3. 编程模型&编程思想

    编程模型 1.面向对象编程OOP 2.面向切面编程AOP Java静态接口,Java动态代理,字节码提升. 面向切面的两个方面: 拦截判断:方法,注解,参数,异常 拦截执行:前置,后置,返回,异常 3 ...

  4. 【java高级编程】jdk自带事件模型编程接口

    事件类 java.util.EventObject java.beans.PropertyChangeEvent 事件监听接口 java.util.EventListener java.beans.P ...

  5. delphi异步选择模型编程TCP

    Server端: unit U_FrmServer; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, ...

  6. Sockit 硬件接口编程——点亮一个LED

    1.话不多说上代码 #include <stdio.h> #include <stdlib.h> #include <string.h> #include < ...

  7. hdl - 软件编程与硬件建模

    https://mp.weixin.qq.com/s/Y75I9e3s4fDPZuv-CyiNDA   介绍软件编程思维与硬件建模思维的不同与相似之处.   ​​   1. 软件编程思维   编程,意 ...

  8. 网络编程学习——Linux epoll多路复用模型

    前言 后端开发的应该都知道Nginx服务器,Nginx是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器.后端部署中一般使用的就是Nginx反向代理技术. ...

  9. IOCP模型与网络编程

    IOCP模型与网络编程 一.前言:        在老师分配任务(“尝试利用IOCP模型写出服务端和客户端的代码”)给我时,脑子一片空白,并不知道什么是IOCP模型,会不会是像软件设计模式里面的工厂模 ...

随机推荐

  1. 初识Matlab及界面认识

    通过本章节的学习,需要掌握: MATLAB语言是什么 MATLAB在互联网语言中地位与应用 目标:利用MATLAB进行问题求解的基本规律.够使用MATLAB作为专业应用的工具. 1.什么叫计算? (1 ...

  2. Spring Cloud Alibaba系列(二)nacos作为服务配置中心

    Nacos 提供用于存储配置和其他元数据的 key/value 存储,为分布式系统中的外部化配置提供服务器端和客户端支持.使用 Spring Cloud Alibaba Nacos Config,您可 ...

  3. Spring官网阅读(十)Spring中Bean的生命周期(下)

    文章目录 生命周期概念补充 实例化 createBean流程分析 doCreateBean流程分析 第一步:factoryBeanInstanceCache什么时候不为空? 第二步:创建对象(crea ...

  4. ssh框架整合时的延迟加载问题(no session问题)的分析以及解决方案

    当我们整合完三大框架,并采用hibernate的延迟加载方案时,会出现如下的异常: 现在对这个异常进行分析,如下图所示(模拟通过id查询用户信息的过程): 上图分析了为什么会出现no session的 ...

  5. 谈谈R语言的缺点和优点

    编码不友好,对中文不友好,逼着你用RStudio.Jupyter Notebook/Jupyter Lab.图标丑,每次点击感觉辣眼睛. 为节省内存,R语言计算默认有效数字为7位,比Excel的15位 ...

  6. abp web.mvc项目中的菜单加载机制

    abp中的菜单加载机制 在abp中菜单的定义与我们传统写的框架不一样,它是在编写代码的时候配置,而我们一般写的通用权限管理系统中,是后期在后台界面中添加的.这一点有很大不同.abp关于菜单的定义及管理 ...

  7. CF #635D Xenia and Colorful Gems 枚举+二分

    Xenia and Colorful Gems 题意 给出三个数组,在每个数组中选择一个数字x,y,z,,使得\((x-y)^2+(y-z)^2+(x-z)^2\)最小. 思路 我们假设x<=y ...

  8. [hdu4576]dp

    题意:1-n围成1圈,从1出发,第i次走a[i]步,问走m次后出现在[L,R]的概率L<=R. 思路:明显的DP,把编号变成0~n-1,令dp[i][j]表示走完i步之前停在了j上,则有dp[i ...

  9. PHP正则表达式语法汇总

    首先,让我们看看两个特别的字符:'^' 和 ‘$' 他们是分别用来匹配字符串的开始和结束,一下分别举例说明"^The": 匹配以 "The"开头的字符串;&qu ...

  10. 前端面试题-几个很实用的BOM属性对象方法?

    什么是Bom? Bom是浏览器对象.有哪些常用的Bom属性呢? (1)location对象 location.href-- 返回或设置当前文档的URL location.search -- 返回URL ...