请选择 进入手机版 | 继续访问电脑版

集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
楼主: lcytms

跟李凡老师学FPGA之VHDL基础D01(20160720课堂笔记)

[复制链接]
 楼主| lcytms 发表于 2018-11-1 09:35:39 | 显示全部楼层
0927
        因为阻塞是一个软件进程,是软件先做什么后做什么,软件被操作系统调用的时候,一个进程的概念,进程要得到返回值,才能够执行下一个进程,称之为阻塞。
        不需要得到返回值,直接运行,并且通过后续的不断的更新查询,称之为非阻塞。
        现在的互联网的浏览器,大多都是非阻塞的。
        早期的浏览器是阻塞的,用阻塞方式写的浏览器。
        如果我们要访问对方的一个网页,网页出了问题,很可能你的电脑都要死掉。
        它不停地在循环在执行,这是阻塞,这是一个进程访问的概念。
        可是米德体系下面说,硬件是没有进程的。
        因为硬件就是硬件,无论是一台机器、两台机器,一根线、两根线,还是千根线、万根线,每根线之间发生电路传输的时间一定是在瞬时完成。
 楼主| lcytms 发表于 2018-11-4 20:31:59 | 显示全部楼层
0928
        你不可能阻塞,第一个板子先完成,第二个板子再完成。
        不会,一定是同时完成的,所以说米德体系下面没有阻塞和非阻塞之说。
        这本来是一个好事,它认为所有的电路都是同时发生的。
        面向综合的时候,确实如此。
        可是呢,面向非综合的时候,2012特别强调验证嘛,验证是非综合目的,验证意味着什么呢?
        所有的事情都在电脑上完成。
        既然回到了电脑上,就一定有先有后了。
        哪怕我们是多核系统,哪怕我们是并行机,一定会有一个进程管理。
        这个时候阻塞反而大放异彩。
 楼主| lcytms 发表于 2018-11-6 09:35:20 | 显示全部楼层
0929
        我们有一种面向非综合的编码风格,昨天有同学问到这个问题,随后我们会来说一下。
        昨天我们在做激励的时候,我们在做DDR2,HPC II的时候,我们要把local的信号要对齐,physical的上升沿,我们是用仿真的方式来找到那个上升沿跟最后一个激励的时间关系,由此我们来写一个激励的延迟。
        有没有更好的方法,直接用语言来组织它呢?
        有,这就是非综合目的的编码风格。
        那么这个时候就要用到阻塞,用到一种特定的阻塞,@上升沿的那个写法。
 楼主| lcytms 发表于 2018-11-9 09:26:41 | 显示全部楼层
0930
        这就带来了反转了。
        这就是Verilog原来认为是缺陷的地方,现在反而变成了优势了。
        以至于Verilog它是一种基于描述和基于验证的语言。
        HDL,这个D就是Description。
        HVL,那个V就是Verification。
        那么,System Verilog呢,是HDVL。
        System Verilog大家知道,它是为了发展验证用的,验证首先的问题就是SoC。
        我们做过SoC的就知道,SoC的验证是非常复杂的。
        2001年,开发了这种既支持描述又支持验证的语言,它是从2005年往Verilog上继承的。
        所以Verilog 2005版的代码,允许你一字不改,放到System Verilog上面执行。
 楼主| lcytms 发表于 2018-11-10 09:12:52 | 显示全部楼层
0931
        同学们或多或少了解过一些VHDL的知识,或者完全没有接触过VHDL,我们通过这两天的学习,在了解了一种HDL语言的基础上,我们争取迅速地掌握VHDL的基础知识。
        目标是能读能写能翻译。
        能读得懂一般规模的代码,能写小规模的代码,能把我们自己写的Verilog翻成VHDL,反之也可以进行翻译。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2018-11-11 21:03:01 | 显示全部楼层
0932
        并且我们会比较这两种语言的特点。
        所以今天应该是比较轻松的一件事,只是做两种语言的对比,我们知道,用Verilog做显式建模的时候,我们是用显式的保留字module,然后加上模块名字,然后加上端口列表,即圆括弧里面的,然后endmodule,称之为显模,EM,显式建模。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
 楼主| lcytms 发表于 2018-11-11 21:24:42 | 显示全部楼层
0933
        这是Verilog对显模的描述。
        那么VHDL呢,它是三个部分。
 楼主| lcytms 发表于 2018-11-12 09:26:50 | 显示全部楼层
0934
        称之为EM的这个部分,显式建模的这个部分,VHDL上用三个部分组成。
        显式建模是它有显式声明的保留字、显式声明的模型的名称、显式声明的端口。
        VHDL,第一行library,要声明库,这是第一件事。
        它的任何的代码都必须要先声明,没有声明就不能用,不像Verilog它很灵活。
        它是封在它的编译库里面的。
 楼主| lcytms 发表于 2018-11-12 09:27:49 | 显示全部楼层
0935
        要声明出它的一个library,library给出一个库名。
        在这个library里面给出IEEE就是一个库。
        一个库,在VHDL的组织就是一个文件夹,声明有这个库,而且你必须要打开这个库,是USE。
        第一件事,是库声明,包含声明这个库的名字,包含打开这个库。
        打开这个库,它的方法是这样,首先是库的名字,加上点,然后是封装的名字。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|集成电路技术分享 ( 京ICP备20003123号-1 )

GMT+8, 2024-4-19 10:16 , Processed in 0.082030 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表