介绍硬件建模的各个层次,以及基于RTL进一步提高层次的方法。
 
1. 物理版图
 
直接画出各个物理器件的物理连接图,这个应该是最低的硬件建模层次了。
 
MOS6502据说就是这么开发的:http://www.visual6502.org/JSSim/expert.html
 
 
2. 门和开关层(GSL)
 
门也是由开关组成的。
 
GSL把门和开关抽象成为关键字,连线抽象成为传参。描述的也是各个物理器件及其连线关系。
 
 
 
3. 寄存器传输层(RTL)
 
RTL层把DFF抽象成为reg类型;把常用的逻辑单元抽象成为符号,如加减乘除移位等;把连接抽象为赋值。
 
从描述硬件结构转换为描述行为逻辑,极大的降低了工作量,提高了效率。
 
 
4. 再提高一层
 
再提高一个层次呢?
 
基于公式:程序 = 数据 + 算法,有以下几个方面:
 
1) 提高数据类型层次
 
在RTL wire/reg的基础上,把数据类型提高一个抽象层次,如:
a. Chisel中的UInt/SInt/Bool/Aggregate/Clock,以及用户自定义数据类型Bundle等;
b. SystemC中位数确定的,位数任意的,定点浮点的数据类型;
c. SystemC中的事件类型的数据,用以提取出等待(wait)和通知(notify)行为;
 
2) 提高模型层次(HLS)
 
直接提高模型的抽象层次,以提高灵活性和效率。
 
a. 基于硬件建模思维
 
如SystemC,可以在系统级建模。
抽象出模块,process, clock, event, signal, port, interface等概念,直接在高于RTL的层次建模。
 
事实上,在SystemC的系统级建模层次上,硬件建模思维与软件建模思维是统一的。
 
b. 基于软件编程思维
 
如Vivado HLS, 把C语言函数转换为模块,把函数调用转换为模块关联。
如SystemC METHOD的实现。
 
这个需要把以软件编程思维编写的程序,转换为硬件模型。
 
3) 提高构建层次(Generator)
 
模型层保持不变,而使用生成器提高构建的层次。
这样一则模型容易理解,二则可以提高构建效率。
 
如Verilog的generate,Chisel的circuit generator。
 
 
5. SystemC
 
a. 提高了数据类型的抽象层次;
b. 可以进行系统级建模(system-level modeling),提高了模型层次;
c. METHOD实现使用软件编程思维方式,需要进行转换;
 
 
6. Chisel
 
a. 提高了数据类型的抽象层次;
b. 没有提高构建出的硬件模型的抽象层次;
c. 使用电路生成器提高了构建的层次;
 
硬件模型没有提高抽象层次,易于理解。
电路生成器,可以使用任何思维,任何语言特性,任何官方或第三方代码库。
只要落实到硬件模型上,生成器拥有无穷无尽的自由。
 

hdl - HLS vs. Generator的更多相关文章

  1. Vivado HLS与System Generator:联系与区别

    在很多年以前的ISE套件里面,有个功能强大的AccelDSP,它可以可自动地进行浮点到定点转换,并把算法生成可综合的HDL,还可以创建用于验证的测试平台,但是在4年前左右的时候销声匿迹了,当时的说法是 ...

  2. 高层次综合(HLS)-简介

    本文是我近段时间的学习总结,主要参考了Xilinx的技术文档以及部分网上其他资料.文档主要包括ug998<Introduction to FPGA Design Using High-Level ...

  3. HLS入门收集(1)

    使用HLS各种问题 关于求指数函数 exp(x) 在HLS中使用exp(x),也就是指数函数.不能导出RTL到EDK也就是Pcore  只能导出为VIVADO IP:相关解释:见官方论坛 http:/ ...

  4. System Generator入门

      System generator 安装之后会在Simulin模块库中添加一些Xilinx FPGA专用的模块库,包括Basic Element,Communication,Control Logi ...

  5. System Generator入门笔记

    System Generator入门笔记  [CPLD/FPGA] 发布时间:2010-04-08 23:02:09  System Generator是Xilinx公司进行数字信号处理开发的一种设计 ...

  6. 中国澳门sinox很多平台CAD制图、PCB电路板、IC我知道了、HDL硬件描述语言叙述、电路仿真和设计软件,元素分析表

    中国澳门sinox很多平台CAD制图.PCB电路板.IC我知道了.HDL硬件描述语言叙述.电路仿真和设计软件,元素分析表,可打开眼世界. 最近的研究sinox执行windows版protel,powe ...

  7. ZED-Board从入门到精通系列(八)——Vivado HLS实现FIR滤波器

    http://www.tuicool.com/articles/eQ7nEn 最终到了HLS部分.HLS是High Level Synthesis的缩写,是一种能够将高级程序设计语言C,C++.Sys ...

  8. system generator学习笔记【02】

    作者:桂. 时间:2018-05-20  23:28:04 链接:https://www.cnblogs.com/xingshansi/p/9059668.html 前言 继续学习sysgen.接触s ...

  9. 设计简单算法体验Vivado HLS的使用

    前言 本文主要讲解了使用Vivado HLS设计简单C语言的二选一选择器算法的硬件HLS开发的全流程,包括工程创建-算法验证和仿真-算法综合-RTL仿真-IP封装等步骤. 参考网站: http://b ...

随机推荐

  1. 树形dp compare E - Cell Phone Network POJ - 3659 B - Strategic game POJ - 1463

    B - Strategic game POJ - 1463   题目大意:给你一棵树,让你放最少的东西来覆盖所有的边   这个题目之前写过,就是一个简单的树形dp的板题,因为这个每一个节点都需要挺好处 ...

  2. 服务器3C直连网络好呢还是3C精品网络更好呢?

    3C直连网络:通过用自有AS号与中国电信CTcc,中国联通CUcc,中国移动CMcc企业网进行直接接驳,提供对大陆方向有更高要求的网络接入服务. 简称:国内3c直连. 3C精品专线网:在3C直连基础上 ...

  3. 记一次面试过程中的Python编程题

    这几天面试过程中遇到一道Python编程题,题目如下: 面试中遇到一个Python编程问题:一个字符串,将里面的数字取出来,如果第一个数字前面是+,表示整个数字为正数,如果第一个数字前面是-,表示数字 ...

  4. Coursera课程笔记----C程序设计进阶----Week 3

    函数的递归(Week 3) 什么是递归 引入 函数可以嵌套调用:无论嵌套多少层,原理都一样 函数不能嵌套定义:不能在一个函数里再定义另一个函数,因为所有函数一律平等 问题:一个函数能调用它自己吗? 举 ...

  5. Day_14【IO流】扩展案例1_缓冲区字符输入、输出流,键盘录入,contains()方法的统一运用

    分析以下需求,并用代码实现 实现一个验证码小程序,要求如下: 1. 在项目根目录下新建一个文件:data.txt,键盘录入3个字符串验证码,并存入data.txt中,要求一个验证码占一行: 2. 键盘 ...

  6. Linux文件系统基本结构

    (1)Linux文件系统为一个倒转的单根树状结构: (2)文件系统的根为“/”: (3)文件系统严格区分大小写: (4)路径使用“/”分割(windows使用“\”): 当前工作目录 (1)每个she ...

  7. GNU ARM 汇编基础

    ARM GNU汇编基础 0 前言 全文补充提醒: 笔者在阅读ARM官方文档及查阅实际的u-boot源码中的汇编代码后,发现了一些不同于ARM官方文档中的汇编语法,查阅相关资料后,才发现主要由于汇编器的 ...

  8. PDF怎么转换成Word,免费,完整的那种

      简介 PDF可以分为文字型PDF和图片型PDF,文字型PDF即可以选中文字内容的PDF,反之图片型PDF即无法选中文字的PDF,其内容实际上是图片. 本文针对不同类型,介绍PDF转Word方法,可 ...

  9. [csu/coj 1632]LCP

    题意:求一个串的出现次数超过1次的字串的个数 思路:对于一个后缀,出现在它后面的所有后缀与它的LCP的最大值就是应该增加的答案,当然这里没有考虑去重,但是却转化了问题,使得我们可以用最长公共前缀来统计 ...

  10. javascript操作字符串间隔显示随机颜色

    参考了另一篇文章 https://www.cnblogs.com/zjfree/p/11584177.html,原理在这篇文章已经有详细描述了. 然后结合自己的一些js基础,当然改成jquery也可以 ...