原文地址: http://blog.csdn.net/gtatcs/article/details/8970489 SystemVerilog语言简介 SystemVerilog是一种硬件描述和验证语言(HDVL),它基于IEEE1364-2001 Verilog硬件描述语言(HDL),并对其进行了扩展,包括扩充了C语言数据类型.结构.压缩和非压缩数组. 接口.断言等等,这些都使得SystemVerilog在一个更高的抽象层次上提高了设计建模的能力.SystemVerilog由Accellera…
以下内容源自:http://blog.csdn.net/gtatcs/article/details/8970489 SystemVerilog语言简介 SystemVerilog是一种硬件描述和验证语言(HDVL),它基于IEEE1364-2001 Verilog硬件描述语言(HDL),并对其进行了扩展,包括扩充了C语言数据类型.结构.压缩和非压缩数组. 接口.断言等等,这些都使得SystemVerilog在一个更高的抽象层次上提高了设计建模的能力.SystemVerilog由Acceller…
转自CSDN:http://blog.csdn.net/gtatcs/article/details/8970489 SystemVerilog语言简介 SystemVerilog是一种硬件描述和验证语言(HDVL),它基于IEEE1364-2001 Verilog硬件描述语言(HDL),并对其进行了扩展,包括扩充了C语言数据类型.结构.压缩和非压缩数组. 接口.断言等等,这些都使得SystemVerilog在一个更高的抽象层次上提高了设计建模的能力.SystemVerilog由Acceller…
Verilog模块概念和实例化 模块的概念 模块(module)是verilog最基本的概念,是v设计中的基本单元,每个v设计的系统中都由若干module组成. 1.模块在语言形式上是以关键词module开始,以关键词endmodule结束的一段程序. 2.模块的实际意义是代表硬件电路上的逻辑实体. 3.每个模块都实现特定的功能. 4.模块的描述方式有行为建模和结构建模之分. 5.模块之间是并行运行的. 6.模块是分层的,高层模块通过调用.连接低层模块的实例来实现复杂的功能. 7.各模块连接完成…
引言 经过了组合逻辑和时序逻辑的复习,终于到了Verilog部分.这里主要介绍Verilog一些基础内容,包括结构化模型.TestBench编写和仿真.真值表模型. 这部分内容不多,也都十分基础,大家可以看个乐呵,看个意思,但是有一些细节还是需要注意的. Verilog结构化模型 结构化和语言规则 下图以示例的形式分别说明了1995版和2001/2005版Verilog语法下的结构化模型,两者的不同主要体现在模块输入输出端口的声明中.端口可以是input.output,也可以是inout双向端口…
一.软件平台与硬件平台 软件平台: 操作系统:Windows 8.1 64-bit 开发套件:Vivado2015.4.2  Matlab2016a 仿真工具:Vivado自带仿真器 二.引言 在利用Verilog写数字信号处理相关算法的过程中往往涉及到对数据的量化以及截位处理.而在实际项目中,一种比较精确的处理方式就是先对截位后的数据进行四舍五入(round),如果在四舍五入的过程中由于进位导致数据溢出,那么我们一般会对信号做饱和(saturation)处理.所谓饱和处理就是如果计算结果超出了…
转自https://www.cnblogs.com/liujinggang/p/10549095.html 一.软件平台与硬件平台 软件平台: 操作系统:Windows 8.1 64-bit 开发套件:Vivado2015.4.2  Matlab2016a 仿真工具:Vivado自带仿真器 二.引言 在利用Verilog写数字信号处理相关算法的过程中往往涉及到对数据的量化以及截位处理.而在实际项目中,一种比较精确的处理方式就是先对截位后的数据进行四舍五入(round),如果在四舍五入的过程中由于…
1. 规范很重要      工作过的朋友肯定知道,公司里是很强调规范的,特别是对于大的设计(无论软件还是硬件),不按照规范走几乎是不可实现的.逻辑设计也是这样:如果不按规范做的话,过一个月后调试时发现有错,回头再看自己写的代码,估计很多信号功能都忘了,更不要说检错了:如果一个项目做了一半一个人走了,接班的估计得从头开始设计:如果需要在原来的版本基础上增加新功能,很可能也得从头来过,很难做到设计的可重用性.在逻辑方面,我觉得比较重要的规范有这些: (1) 设计必须文档化      要将设计思路,详…
1.规范很重要工作过的朋友肯定知道,公司里是很强调规范的,特别是对于大的设计(无论软件还是硬件),不按照规范走几乎是不可实现的.逻辑设计也是这样:如果不按规范做的话,过一个月后调试时发现有错,回头再看自己写的代码,估计很多信号功能都忘了,更不要说检错了:如果一个项目做了一半一个人走了,接班的估计得从头开始设计:如果需要在原来的版本基础上增加新功能,很可能也得从头来过,很难做到设计的可重用性. 在逻辑方面,我觉得比较重要的规范有这些:1.设计必须文档化.要将设计思路,详细实现等写入文档,然后经过严…
最近在看cordic算法,由于还不会使用matlab,真是痛苦,一系列的笔算才大概明白了这个算法是怎么回事.于是尝试用verilog来实现.用verilog实现之前先参考软件的程序,于是先看了此博文http://blog.csdn.net/liyuanbhu/article/details/8458769也不截图了,因为怕图形被其他博客网站检测到后屏蔽图片,造成此博文无法正常阅读. 阅读此博文,需要先阅读上面这个博文的内容. 这是此博文中的C代码.避免浮点运算,所以angle数组里面的角度值都扩…
Verilog基本上熟悉了,继续整理一下Verilog的学习笔记吧.前面记载了Verilog的结构,写Verilog的结构有了,但是该怎么写呢?在写之前就得了解一下Verilog的一些基本要素了,也就是Verilog是怎么一点一点写出来的. 一.标识符与注释 前面已经说到,模块名的定义要符合标识符的定义,那么什么是标识符呢?它的语法是什么呢? ①标识符是赋给对象的唯一名称,通过标识符可以提及相应的对象,Verilog语法将对转义标识符中的字符逐个处理. ②标识符可以是字母.数字.下划线和美元符$…
一直苦于 modelsim 没有Mac版本,且其体量过大,在学习verilog 时不方便使用. 终于找到一组轻量级且全平台 ( Linux+Windows+macOS ) 的编译仿真工具组. Icarus Verilog + gtkwave 两者为轻量级verilog编译工具,一共不超过20M. wiki用户指南链接: iverilog 安装工具 Mac利用Homebrew安装,跨平台有win, linux版本. Mac下安装命令如下: brew install icarus-verilog b…
1. 概述 在Verilog中我们常常会遇到要将一个常量(算法中的某个参数)赋给很多个变量的情况,如: x = 10;y = 10;z = 10;如果此时10要改为9,就需要在代码中修改3个地方,非常的不方便,并且这个10是没有任何意义的,我们不知道它代表什么,所以为了代码的易重用.易读性,我们应使常量参数化,如: parameter MAX = 10;x = MAX;y = MAX;z = MAX; 这样就只需要修改MAX就可以了,并且MAX是有意义的,增加代码的易读性. parameter是…
本文档中通过verilog实例来学习verilog语法.Verilog是一种硬件描述语言,它具有并发性和时序性.并发性是指不同硬件模块的同时操作,时序性是指信号的赋值或操作在时钟的边沿进行.由于作者本身也是一个初学者,所以尽量用简单明了的例子介绍Verilog语法. Verilog中的注释 Verilog代码中的注释和c++语言相同,分为短注释(//)和长注释(/* - */).短注释通常放在每行代码的后面或上面,用来注释这行代码的功能.长注释一般在module的开始处,用来说明模块的功能.比如…
比较有用的:1,generate语句,但需注意,generate-for中变量范围是已知的确定值, generate-case,generate-if语句中变量都必须是固定的, generate必须跟endgenerate 中间begin加块名. 2,算术左移右移 3,有符号数,其实就是两个变量位宽不一致做运算的时候,低位宽的补齐位宽的方式与以前发生了变化,原来是用零补齐,现在看最高位如果是1就以1补齐,如果是0,就以0补齐. 4,多维向量,并且可以取向量的任意一位. 1.Verilog-200…
1.分层的事件队列 2.执行事件的队列 3.仿真时间的计算 4.同一层事件,无先后顺序 这个点:觉得Verilog与systemVerilog比较,Verilog比较笼统,systemVerilog则比较细分. 在Verilog眼中无论testbench.dut还是assertion都是code. 所以先把code吃进来,然后有一个时间轴参数,仅仅处理set t = 0时刻的code.这个code有阻塞语句.$display.assignment....0时刻还有#0语句.在处理非阻塞的LHS.…
这篇是计算机类的优质预售推荐>>>><Verilog与SystemVerilog编程陷阱:怎样避免101个常犯的编码错误> 编辑推荐 纠错式学习,从"陷阱"中学习编程,加深对语言本身的理解. 逆向式学习,从错误中学习避免错误的方法.让读者写出更好的代码. 案例式学习,将101个"陷阱"分类汇编,以针对性案例引导读者掌握编程要点. 译者序 译者序 随着电子设计自己主动化(Electronic Design Automation,ED…
Notepad++是一款精致小巧的编辑器,自带Verilog语法识别功能,插件也挺好用的.这里陈列一下我的设置. 版本:Notepad++ 7.6.6 ,32位 //========================================================================//==== 安装与Verilog设置//========================================================================1.…
作为引子,首先来看一段描述,该段介绍了SystemVerilog对比Verilog在RTL设计和建模时的新特性之一(logic数据类型),然后下文我再展开对比介绍Verilog和SystemVerilog中的基本数据类型.(该段内容引用自 @Dr. Pong P. Chu 的书籍列表之<FPGA Prototyping by SystemVerilog Examples: Xilinx MicroBlaze MCS SoC>的书籍说明部分) <SystemVerilog vs Veril…
1 前言 在 前面的博客  CRC校验原理和verilog实现方法(一)  中,介绍了CRC校验的原理和手动计算过程.本文说一下我在学习CRC校验FPGA实现的一点心得体会. 2 线性反馈移位寄存器 线性反馈移位寄存器简称LFSR,用于产生可重复的伪随机序列,也可用来实现CRC校验.LFSR主要由触发器(寄存器).异或门以及反馈线路组成. 已知多项式,其中gn~g0 是系数,g0取值为1,其他系数可以是0或1.该多项式用二进制表示为,用LFSR表示为: 或者表示为: 第一种表示法为伽罗瓦LFSR…
1. Elo Rating System Elo Rating System对于很多人来说比较陌生,根据wikipedia上的解释:Elo评分系统是一种用于计算对抗比赛(例如象棋对弈)中对手双方技能水平的方法,它由Arpad Elo创建.(The Elo rating system is a method for calculating the relative skill levels of players in competitor-versus-competitor games such…
C# System.Guid.NewGuid() 概念 GUID: 即Globally Unique Identifier(全球唯一标识符) 也称作 UUID(Universally Unique IDentifier) . GUID是一个通过特定算法产生的二进制长度为128位的数字标识符,用于指示产品的唯一性.GUID 主要用于在拥有多个节点.多台计算机的网络或系统中,分配必须具有唯一性的标识符. 在 Windows 平台上,GUID 广泛应用于微软的产品中,用于标识如如注册表项.类及接口标识…
一 System类 1.概念 在API中System类介绍的比较简单,我们给出定义,System中代表程序所在系统,提供了对应 的一些系统属性信息,和系统操作. System类不能手动创建对象,因为构造方法被private修饰,阻止外界创建对象.System类中的 都是static方法,类名访问即可.在JDK中,有许多这样的类. 2.常用方法 currentTimeMillis() 获取当前系统时间与1970年01月01日00:00点之间的毫秒差值 exit(int status) 用来结束正在…
自从互联网火了以后,一大堆 o2o,b2b,c2c 的产品出现,这些名词也渐渐为人熟知,但很多人对这些产品的理解也是停留在概念上,实际上绝大部分人用的都是 To C(也写作2c)产品,比如微信,qq 等.今天丁丁就站在设计狮/产品汪的角度从概念到设计给大家分析一下 To B 和 To C 产品的区别,为方便理解,以下举例会采取两个极端进行对比. 丨概念 字面上的意思都很明确:To B 就是 To business,面向企业或者特定用户群体的面商类产品:To C 就是 To customer,产品…
RabbitMq基础教程之基本概念 RabbitMQ是一个消息队列,和Kafka以及阿里的ActiveMQ从属性来讲,干的都是一回事.消息队列的主要目的实现消息的生产者和消费者之间的解耦,支持多应用之间的异步协调工作 由于工作原因,接触和使用rabbitmq作为生产环境下的消息队列,因此准备写一些博文,记录下这个过程中的收货:而开篇除了环境搭建之外,就是对于其内部的基本概念进行熟悉和了解了. 基础环境搭建可以参考: <RabbitMq基础教程之安装与测试> 本文则主要集中在以下几点: 几个基本…
序言 ES数据架构的主要概念(与关系数据库Mysql对比) 集群(cluster) 集群,一个ES集群由一个或多个节点(Node)组成,每个集群都有一个cluster name作为标识.一下是我们的4节点集群. 节点(node) 节点,一个ES实例就是一个node,一个机器可以有多个实例,所以并不能说一台机器就是一个node,大多数情况下每个node运行在一个独立的环境或虚拟机上. 索引(index) 索引,即一系列documents的集合. 类型(type) 分片(shard) 一个拥有两个主…
  Elasticsearch研究有一段时间了,现特将Elasticsearch相关核心知识和原理以初学者的角度记录下来,如有不当,烦请指正! 0. 带着问题上路——ES是如何产生的? (1)思考:大规模数据如何检索? 如:当系统数据量上了10亿.100亿条的时候,我们在做系统架构的时候通常会从以下角度去考虑问题: 1)用什么数据库好?(mysql.sybase.oracle.达梦.神通.mongodb.hbase…) 2)如何解决单点故障:(lvs.F5.A10.Zookeep.MQ) 3)如…
RabbitMQ的基本概念 RabbitMQ github项目地址 RabbitMQ 2007年发布,是一个在AMQP(高级消息队列协议)基础上完成的,可复用的企业消息系统,是当前最主流的 消息中间件 之一.由以高性能.健壮以及可伸缩性出名的 Erlang 写成,因此也是继承了这些优点.并且RabbitMQ是一个是一个开源的消息代理和队列服务器. AMQP : Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计…
一.Object类 作用:对象操作 位置:java.lang.Object 方法: public String toString() :返回对象的字符串表示形式. public boolean equals(Object obj): 指示是否有其他对象"等于"这一个. 注意:Object类里的toString方法 Object类是所有类的终极父类. person类默认继承了Object类,所以可以使用Objcct类里的方法,返回该对象的字符串表示.通常,toString 方法会返回一个…
如何学习FPGA 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/k331922164/article/details/44626989 PS:笔者强烈建议诸位注册一个EETOP的账号,每天签到或者发贴.回贴就有积分了,里面的资源非常丰富,各种软件.资料都能找到.一.入门首先要掌握HDL(HDL=verilog+VHDL). 第一句话是:还没学数电的先学数电.然后你可以选择verilog或者VHDL,有C语言基础的,建议选择VHDL.因为veri…