概念辨析-Description Language还是Description Library?
 
一. Language的概念
 
Verilog, standardized as IEEE 1364, is a hardware description language (HDL) used to model electronic systems.
 
可以看到Verilog是Language。同样,VHDL和SystemVerilog也是。
Chisel虽然嵌于Scala,但只用了一个很小的子集,并且与正常的Scala写法也有很大的区别。再者,Chisel: Constructing Hardware in a Scala Embedded Language,也表明了是嵌于Scala的语言,而非独立的语言。
 
Language之所以成为Language是因为其独特的语法,如关键字和语法结构。
比如VHDL、Verilog、SystemVerilog的关键字和提供的语法糖就有很大不同,表达效率也因此而异。
 
二. 建模
 
无论是什么language,其目的都是model electronic systems.
 
建模得到的只是模型,而非electromic systems本身。这也是HDL中D之所以是Description的原因。
 
任何语言都可以建模。
 
进而,任何语言都可以model electronic systems. 只是术业有专攻,各种擅长的领域不同。专有的Hardware Description Language或者Hardware Modeling Language,如VHDL, Verilog、SystemVerilog的表达效率高,模型较精确。
 
但不能否定,其他语言也可以model electronic systems. 如C,C++,C#, Python, Java, Haskell, Ruby等等。
 
三. Library
 
使用其他语言建模硬件,则需要基于该语言针对硬件建模的库,即Library。Library则是基于某种语言的库,为语言提供某一个专业领域的基础能力。比如libc,glibc,就是C语言的运行时库;libc++是C++的运行时库。libssl是ssl的库,凡此种种。
 
举个例子:SystemC(不甚了解):
 
总结一下,无论是Language还是Library都是用于model electronic systems. 只是Language是专用硬件建模语言,而Library则是基于现有语言,提供硬件建模能力。

概念辨析-Description Language还是Description Library?的更多相关文章

  1. 高并发应用中客户端等待、响应时间的推算,及RT/QPS概念辨析

    高并发应用中客户端等待.响应时间的推算,及RT/QPS概念辨析 对于一个网站,已知服务端的服务线程数和处理单个请求所需的时间时,该如何算出高并发时用户从点击链接到收到响应的时间?注意这个时间并不等于服 ...

  2. Python类型转换+序列操作+基本概念辨析速查手册

     第一部分是Python语言中基础中的基础,根据网上资料,合并如下:       1.类型转换     int(x [,base])  将x转换为一个整数     long(x [,base]) 将x ...

  3. AE开发概念辨析

    樱木 原文 AE开发之概念辨析2,AE开发涉及相关概念,AE开发相关概念 1 AE中的类库 AE总共包括了21个子库,分别是SYSTEM,SYSTEMUI,GEOMETRY,DISPLAY,SERVE ...

  4. 概念辨析-Hardware Description还是Hardware Developing?

    https://mp.weixin.qq.com/s/j4Ndo1R4Go9IaGbhE_nsTg   Verilog, standardized as IEEE 1364, is a hardwar ...

  5. 【转载】[C#]枚举操作(从枚举中获取Description,根据Description获取枚举,将枚举转换为ArrayList)工具类

    关键代码: using System; using System.Collections; using System.Collections.Generic; using System.Compone ...

  6. Web Service概念辨析

    Web Service包含两个概念. 其一是Web Service标准体系,由SOAP.WSDL.UDDI三要素组成,是平台和语言无关的.在这个概念里和WCF做比较是错误的,因为前者是行业标准,后者是 ...

  7. Java概念辨析:equals和== equals和hashCode

    1. equals和== ======================================================================================= ...

  8. 编辑器、编译器、文件、IDE等常见概念辨析

    一.编辑器与编译器 1.编辑器与编译器有什么区别? 简单讲,编译器就是将"一种语言(通常为高级语言)"翻译为"另一种语言(通常为低级语言)"的程序.一个现代编译 ...

  9. Java-接口概念辨析

    https://mp.weixin.qq.com/s/HQZhlS-ffgEMqhB2rHax1w 1. 类        是属性成员和方法成员的集合:2. 父类      是子类相同属性成员和方法成 ...

随机推荐

  1. 初识Matlab及界面认识

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

  2. 第十章:Python高级编程-多线程、多进程和线程池编程

    第十章:Python高级编程-多线程.多进程和线程池编程 Python3高级核心技术97讲 笔记 目录 第十章:Python高级编程-多线程.多进程和线程池编程 10.1 Python中的GIL 10 ...

  3. 【Hadoop离线基础总结】Hue的简单介绍和安装部署

    目录 Hue的简单介绍 概述 核心功能 安装部署 下载Hue的压缩包并上传到linux解压 编译安装启动 启动Hue进程 hue与其他框架的集成 Hue与Hadoop集成 Hue与Hive集成 Hue ...

  4. u-boot 移植(二)创建新平台的板级支持

    u-boot 移植(二)创建新平台的板级支持 soc:s3c2440 board:jz2440 uboot:u-boot-2016.11 toolchain:gcc-linaro-7.4.1-2019 ...

  5. iview tree 绑定数据

    官方文档 :https://www.iviewui.com/components/tree 效果图 1 主体分析 <Tree ref="tree" :data="t ...

  6. SpringDataJpa实现增删改查分页

    一.引入依赖 <properties> <spring.version>4.2.4.RELEASE</spring.version> <hibernate.v ...

  7. LeetCode链表专题

    链表 套路总结 1.多个指针 移动 2.虚假链表头:凡是有可能删除头节点的都创建一个虚拟头节点,代码可以少一些判断(需要用到首部前一个元素的时候就加虚拟头指针) 3.快慢指针 如leetcode160 ...

  8. 前端面试题-WebSocket的实现和应用

    (1)什么是WebSocket? WebSocket是HTML5中的协议,支持持久连续,http协议不支持持久性连接.Http1.0和HTTP1.1都不支持持久性的链接,HTTP1.1中的keep-a ...

  9. CSS像素与绝对像素

    之前在电视的webview上投放广告页面时,遇到了个问题,就是视窗大小和文档大小不一致.最后发现原来有CSS Pixel这个概念,搜集了一些资料,希望能把这个问题捋捋清楚. 首先提出一个大家常常会忽略 ...

  10. Rabbitmq 报错 nodedown

    问题描述 线上 rabbitmq 集群账号密码设置的过于简单,有一定的风险.在整改过程中发现,三台机器信息错乱,每台服务器执行rabbitmq 相关的命令就报错,Error: unable to co ...