概念辨析-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. Code::Blocks20.03 编译报错

    Code::Blocks最近出了新版20.03,进入官网选择下载了附带MinGW版的安装包后,编译HelloWorld就报错(CB一直以来都有问题,新版还是这样...) 主要有两个问题: ld.exe ...

  2. shell 循环结构

    前言 循环结构在编程中十分常见,也是程序中是较为重要的一部分,在bash中有 for,until,while 这三种语句可以进行重复执行部分程序流程,下面会进一步讨论这三个指令的使用以及注意事项 fo ...

  3. JS导出页面为PDF文件,该如何操作?来看一眼就明白啦!

    1.资源文件或依赖 <script type="text/javascript" src="./js/canvg2.js"></script& ...

  4. JUC(3)---CountDownLatch、CyclicBarrier和AQS

    CountDownLatch可以让一个线程等待其他线程完成了各自的工作之后再执行.比如说一个切菜,一个人切肉,都准备完毕之后才能炒肉. 构造方法: public CountDownLatch(int ...

  5. CentOS8 右键打开后没有终端

    最近研究CentOS8  发现右键打开后没有终端这一项: 1.经过查询发现是没有安装一个包 2.使用命令进行安装并重启: [root@base ~]# yum -y install nautilus- ...

  6. 宝塔webHook自动同步代码的使用

    #!/bin/bashecho ""#输出当前时间date --date='0 days ago' "+%Y-%m-%d %H:%M:%S"echo " ...

  7. angular 实现依赖注入

    1:首先获取module对象var myAppModule = angular.module('myApp', []); 2:定义对象(类似spring中xml声明bean对象<bean id= ...

  8. 基于Memcached的Nginx服务器集群session共享

    原料:jdk1.8,tomcat7,nginx1.16,memcached-1.2.6,Mem-Tomcat需要的jar包,基于windows7.所有的点击以下链接可下载 链接:https://pan ...

  9. java 查询指定月份的工作日(不包括法定节假日)

    /** * 日期工具类 用于获取指定月份的工作日(除去周末和法定节假日) */ public class DateUtils { public static void main(String[] ar ...

  10. ql的python学习之路-day14

    前言:本节主要学习时间模块time.datetime python中的几种时间表示:1)时间戳  2)格式化的字符串时间 3)struct_time元组格式的时间 time.datetime模块源码: ...