- 博客(71)
- 资源 (36)
- 收藏
- 关注
原创 【 Verilog HDL 】基本运算逻辑的Verilog HDL 模型
本文节选自《从算法设计到硬件逻辑的实现》,仅供学习交流使用。加法器用 Verilog HDL 来描述加法器是相当容易的,只需要把运算表达式写出就可以了,见下例。module add_4( X, Y, sum, C);input [3 : 0] X, Y;output [3: 0] sum;output C;assign {C, Sum } = X + Y;endmodule...
2018-08-31 16:12:39 3798
原创 【 Verilog HDL 】不同抽象级别的Verilog HDL模型之门级结构描述
本博文参考:《从算法设计到硬件逻辑实现》,仅供学习交流使用。Verilog模型可以是实际电路不同级别的抽象。这些抽象的级别和它们对应的模型类型共有以下五种:1) 系统级(system)2) 算法级(algorithmic)3) RTL级(RegisterTransferLevel):4) 门级(gate-level):5) 开关级(switch-level)对于数字系统的逻辑设计...
2018-08-31 12:08:49 7769
原创 【 Verilog HDL 】函数(function)与任务(task)简单介绍
背景关于函数和任务,是我这几天一直想写的内容,原因在于我上篇博文:Verilog HDL 使用规范(一),最后提到的问题,关于代码书写的规范中,要求:用一个函数(function)来代替表达式的多次重复,经常使用的一组描述可以写到一个任务中。当时我还不是太明白,今天就会为此而准备的,为了写出清晰规范的代码,决定细化自己对Verilog HDL语言的学习。本文内容参考:《从算法设计到硬件...
2018-08-30 22:57:45 3981
原创 【 Verilog HDL 】循环语句总结
目录 综述forever语句repeat语句while语句for语句综述在Verilog HDL中存在四种类型的循环语句,用来控制执行语句的执行次数。1) forever 连续的执行语句。2) repeat 连续执行一条语句 n 次。3) while 执行一条语句直到某个条件不满足。如果一开始条件即不满足(为假),则语句一次也不能被执行。4)...
2018-08-30 21:54:05 13191
原创 【Verilog HDL】设计硬件电路时,如何避免生成锁存器?
这个问题很简单,前面的很多博文也多多少少提到了这个问题,(如:Verilog HDL 使用规范(一)),今天就系统地理一遍。Verilog HDL设计中容易犯的一个通病就是不正确使用语言,生成了并不想要的锁存器。下面给出两种情形:情形一:不恰当地使用 if 语句1.1 有锁存器的代码:always @(al or b)begin if(al) q <= b;...
2018-08-30 17:04:35 4113
原创 【Verilog HDL】赋值语句之阻塞赋值方式与非阻塞赋值方式
刚开始接触Verilog HDL语言时,这种硬件描述语言有一点与软件的程序设计语言直观上的最大区别大概就是这个赋值语句了(这里只是强调直观上的最大区别,事实上的最大区别并非如此)。Verilog HDL中的赋值方式有两种:阻塞赋值与非阻塞赋值。之前也看过很多种解释,例如,阻塞赋值(=)适用于组合电路的设计,非阻塞赋值(<=)适用于时序电路的设计;还有阻塞赋值和非阻塞赋值只是语法上存在...
2018-08-30 16:24:09 7666 3
原创 【Verilog HDL】参数(Parameter)的作用案例
我在学习Verilog HDL的时候并没有系统的去学,只是大致的了解了下,然后就用一些常用的语法去设计简单常见的硬件电路,这样做的好处是节省时间,也不会感觉重新学习一门语言很累,但是也会遇到一些问题,例如,《基于PLL分频计数的LED灯闪烁实例》实验记录这篇博文中的一个小问题。建议先看下上面提到的那篇博文,如果实在不想看,又想了解Parameter的作用,那就直接跳过下面的案例。下面是顶层...
2018-08-30 14:44:48 13035
原创 Verilog HDL 使用规范(一)
本博文参考:《大规模逻辑设计指导书》,对于写出规范的代码,培养良好的代码风格颇有裨益。wire and register一个reg变量只能在一个always语句中赋值;这个说明至关重要啊,如果不满足这个,也许仿真的时候没问题,但是综合时候绝对出现,不可以综合。我就犯过多次这个错误。曾经写过一篇博客,专门说过:Modelsim下进行功能仿真没问题,可是在ISE综合报错,如何解决?...
2018-08-29 23:13:39 1892
原创 同步电路设计的一些问题(时序分析基础,同步电路设计规则)
本博文内容来自于《大规模逻辑设计指导书》,感觉写的挺好的,就拿过来备忘。最后还有一部分, 异步设计中常见问题及其解决方法我还没有看懂,暂时不贴过来了。有关时序分析的一些基础理论,我也贴上几篇博文:时序分析之静态分析基础浅析FPGA时序相关问题时序分析基础 同步电路的优越性 同步电路的设计规则 ...
2018-08-29 17:22:08 2550
原创 【 C 】对指针表达式的个人总结与思考
本文内容参考《c 和 指针》。声明:本博文只为那些能沉得住气,认真研究,探索真知的人参考,浮躁的人请离开,因为看不懂。感觉以前学c的时候,学的指针真是白学了,今天看到这个内容,困惑后,又让我茅塞顿开。贴出上篇博文的地址,可供参考:【C】对左值与右值的一些个人思考说些题外话,由于在查看资料的时候,经常看到博客园中的一些博主的博文,写的也是十分的精彩,于是,尝试注册了一下,准备发几篇...
2018-08-28 23:38:23 1456
原创 常见数字IC设计、FPGA工程师面试题
转载自:常见数字IC设计、FPGA工程师面试题我怕弄丢了,找不到了,所以转载过来吧,回答的还挺具有参考意义。借个位置,顺便把另外一篇好文的地址附上:FPGA中的亚稳态1:什么是同步逻辑和异步逻辑?同步逻辑是时钟之间有固定的因果关系。异步逻辑是各时钟之间没有固定的因果关系。同步时序逻辑电路的特点:各触发器的时钟端全部连接在一起,并接在系统时钟端,只有当时钟脉冲到来时,电路的状态才...
2018-08-28 22:36:24 4693
原创 【 C 】对左值与右值的一些个人思考
今天重温C语言的指针,看的书是《C和指针》,关于左值和右值以及指针表达式的内容看得甚是迷惑与煎熬,怎么会这么难理解,指针表达式又是作为左值又一会作为右值,而且二者有着不一样的含义,为什么当年学习C语言的时候没有遇到这些头疼的问题呢?这就是没有学好C的原因吧。功夫不负有心人,认真思考,对比总结,竟有些头绪,记录下来吧。以免以后又忘了没有参考。先谈谈左值与右值的定义吧。左值就是那些能够出现...
2018-08-28 22:15:29 1366 1
原创 【 C 】关于变量、地址、指针变量等关系的一点思考
学习C语言,我们永远绕不开的就是指针,指针是一项伟大的发明,但是它给我们的理解也造成了困难。下面是我对变量、指针变量等的一些简单的思考。变量谈起变量,或许我们都不屑一顾,可是认真一想,发现坏了,变量到底是个啥?是一个容器?是一个地址的名字?还是?关于变量,我们是可以把它形象地理解为一个容器,它可以存储一定的值。(事实上,变量就是用名字来代替地址而已,变量代替的地址对应的内存可以存储数值...
2018-08-28 18:53:18 1422 1
原创 C/C++操作符的优先级和结合性问题浅析
两个相邻操作符的执行顺序由它们的优先级决定。例如: a + b*c,在这个表达式中,乘法和加法操作符是两个相邻的操作符,由于乘法的优先级比加法高,所以乘法运算先于加法运算执行。编译器在这里别无选择,它必须先执行乘法运算。如果它们的优先级相同,它们的执行顺序由它们的结合性决定。例如:a + b + c,由于 + 操作符的结合性是由左到右(L-R),所以先计算a+b,然后计算(a+b)+c。除...
2018-08-28 16:34:33 3110
原创 【 C 】作用域、链接属性、存储类型、static 关键字简介及总结
目录 作用域代码块作用域文件作用域原型作用域函数作用域链接属性存储类型总结作用域当变量在程序中的某个部分被声明时,它只有在程序的一定区域才能被访问。这个区域由标识符的作用域(scope)决定。标识符的作用域就是程序中该标识符可以被使用的区域。例如,函数的局部变量的作用域局限于该函数的函数体。编译器可以确认4种不同类型的作用域:文件作用域、函数作用域、...
2018-08-26 22:11:39 1304
转载 【 C 】结构体 与 typedef
目录 结构体定义结构体访问结构体成员typedeftypedef使用实例typedef vs #define#define使用实例结构体先简单看下结构体的概念与用法:转载:结构体C 数组允许定义可存储相同类型数据项的变量,结构体是 C 编程中另一种用户自定义的可用的数据类型,它允许您存储不同类型的数据项。结构体用于表示一条记录,假设您想要跟踪图书...
2018-08-26 19:54:34 1244
原创 选择法排序笔记
简单的成绩录入系统程序及分析以及思考冒泡法排序笔记这篇博文和上两篇博文都是一年前记的笔记,贴出来复习复习。本专题的目的在于对选择法进行排序的一次大总结,用各种c语言的知识点进行一次排序演练,以至于达到熟悉的目的,最常见的就是用主函数中用数组,排序用自定义的函数进行实现,而函数用指针作为参数来接受数组。见下面的源程序: #include<stdio.h>int m...
2018-08-26 17:11:32 1044
原创 冒泡法排序笔记
和上篇博文:简单的成绩录入系统程序及分析以及思考一样,这篇也是一年前做的笔记,真恨自己当时为什么就不知道使用博客记笔记,有了博客,就可以看到自己学习的点滴和进步,记笔记也方便,还能分享知识。本文档致力于练习冒泡排序法,用c语言的各种语法,例如数组,指针等知识进行编程,达到既对算法的一次实践,又对语法的一次回顾,争取熟悉c编程语言,不断应用c语言,实现最后的推陈出新。冒泡排序法是一种重要的排...
2018-08-26 17:07:46 1230
原创 简单的成绩录入系统程序及分析以及思考
这是一年前写的笔记,那个时候还没有用博客记录学习的点滴,然后就用word写了这个文档。为了防止丢失,以及自己回忆下,就贴出来吧。本程序是在教材的基础之上找到的疑惑部分,程序是基础教材的思想自己编写的,关于使用函数模块来使程序更加的简洁且便于维护都是自己的对知识的运用实践,本程序更能体现对指针的理解,对于二维数组指针的使用是一个很好的练习。本程序的功能是对以一个班,3个学生,4门课为例进行 ...
2018-08-26 17:01:31 2968
转载 C enum(枚举)
本文转载自:C enum(枚举)枚举是 C 语言中的一种基本数据类型,它可以让数据更简洁,更易读。枚举语法定义格式为:enum 枚举名 {枚举元素1,枚举元素2,……};接下来我们举个例子,比如:一星期有 7 天,如果不用枚举,我们需要使用 #define 来为每个整数定义一个别名:#define MON 1#define TUE 2#define WED 3#d...
2018-08-26 14:36:16 1153
转载 C标准库 limits.h
本文转载自:C 标准库 - <limits.h>简介limits.h 头文件决定了各种变量类型的各种属性。定义在该头文件中的宏限制了各种变量类型(比如 char、int 和 long)的值。这些限制指定了变量不能存储任何超出这些限制的值,例如一个无符号可以存储的最大值是 255。库宏下面的值是特定实现的,且是通过 #define 指令来定义的,这些值都不得低于下边所...
2018-08-26 14:06:11 1278
转载 【 C 】K&R C 与 ANSI C的区别(K&R C,ANSI C,C89,C90,C99)(C11)
本文转载自:C–K&R C 与 ANSI C的区别转载的原因在于后面我的C博文也需要这个区分。C语言由Dennis M. Ritchie在1973年设计和实现。从那以后使用者逐渐增加。到1978年Ritchie和Bell实验室的另一位程序专家Kernighan合写了著名的《The C Programming Language》,将C语言推向全世界,许多国家都出了译本,国内有一些C语...
2018-08-25 23:17:43 1311
原创 【 C 】翻译与执行
环境在ANSI C 的任何一种实现中,存在两种不同的环境。分别为: 翻译环境(translation environment)和 执行环境(execution environment)。在翻译环境中,源代码被转换为可执行的机器指令;执行环境,用于实际执行代码。翻译翻译阶段由几个步骤组成,组成一个程序的每个源文件通过编译过程分别转换为目标代码(object code)。然后,各个目标...
2018-08-25 16:56:51 1277
原创 【 C 】预处理指令
写在前面:关于C,已经学了多年了,可是总是没有实际的用途,所以总是被其他的事情耽搁,这样的话,很多相关知识点也就忘却了。到了现在这个阶段,逐渐发现C的重要性了,DSP以及很多方面都需要用到它,以及即将到来的找工作,C几乎是一门必备的技能了,所以今天重新捡起来,但不会像以前那样了,找一本基础书本,按部就班的学习,我要摒弃这种方式了,而是每天通过查找资料,最少更新一个知识点。以前学习,由于没有...
2018-08-25 11:25:14 1413
原创 数字信号处理之内插
上篇博文讲了抽取:抽取这篇博文是与其相对的一篇博文,内插。同样,内容选自论文:《宽带复杂雷达信号模拟技术研究》,老师兄的这个论文还算有态度。word文档里面的公式,图片不能直接复制过来,我也不想敲字了,那就截图过来吧。看这篇博文之前,我推荐先看一下:模拟信号与离散信号之间的频率关系(由模拟信号采样得到的离散信号),这是一个基本问题,学过数字信号的人应该都知道。手稿先提出些前提性...
2018-08-24 20:45:27 17383 2
原创 数字信号处理之抽取
最近在看数字信号处理相关内容的论文时,有关抽取这个话题,很多论文都有涉及,作为数据降速的一种处理手段,可论文终归是论文,有的时候就不是让你看懂为目的的,让你看懂为目的的,是博客、教材等等,当然,有的论文也是很有态度的,把问题叙述的井井有条,甚至还有推导,让人感动。本文摘选自《宽带复杂雷达信号模拟技术研究》中的抽取这一知识点,供参考。这种框框里面的东西,是我的见解。在信号处理过程中,...
2018-08-24 17:48:03 16912 8
原创 带通采样定理简单记录
没有目的的学习是困难的,当初是为了过一遍信号处理的相关知识,遇到了带通采样定理,和奈奎斯特采样定理相比,简直麻烦的让人无法接受!转眼间,半年过去了,这次为了看论文而再次回顾带通采样定理时,发现,接受就好,也看了推导,反而觉得麻烦。下面简单的记录下带通采样定理,这个知识点,当你用的时候,你就不会认为它生涩难懂,因为比它难懂的东西太多了。为什么要用带通采样定理呢?按理说,奈奎斯特采样定理不是通...
2018-08-23 11:44:13 23826 3
原创 数码管显示实验(一)(初步明白片选、段选)
背景:这是一个让我感到耻辱而又欣慰的实验,大约花了我4个半小时时间才调通我下面要写的这篇博文的内容,这篇博文的内容比较简单,所以花这么久时间让我感到自己很弱,故而耻辱,而通过自己的各种改动,适合自己的一块没有资料的FPGA开发板,又是很欣慰的。一个带小数点的数码管的所有8个发光二极管的正极或负极有一个公共端,通常必须接GND(共阴极数码管)或者接VCC(共阳极数码管),而另一个非公共端的8...
2018-08-17 17:57:40 26502 4
原创 《基于PLL分频计数的LED灯闪烁实例》实验记录
问题概述:输入FPGA引脚上的25MHz时钟,配置PLL使其输出4路分别为12.5MHz、25MHz、50MHz和100MHz的时钟信号,这4路时钟信号又分别驱动4个不同位宽的计数器不停的计数工作,这些计数器的最高位最终输出用于控制4个不同的LED亮灭。由于这4个时钟频率都有一定的倍数关系,所以我们也很容易通过调整合理的计数器位宽,达到4个LED闪烁一致的控制。问题就这么多,我觉得有必...
2018-08-16 22:51:51 2947
原创 经典模式流水灯实验的个人总结和思考
问题叙述:当拨码开关SW3处于OFF时, LED停止不动,只有一个LED处于点亮,并且点亮的LED不会变化;而SW3处于ON状态时,流水灯处于流动状态。导航按键S2被按下后,LED流动方向是从上到下(D9到D2方向);导航按键S3被按下后,LED流动方向是从下到上(D2到D9)。这里面用到了拨码开关,按键,以及led灯,那么我把这三种外设的电路图给出来,并简单解释:拨码开关:...
2018-08-16 21:22:37 12282
原创 记录使用Spartan-6进行流水灯控制的实验
整个过程我没有记录,因为之前记录过了,都是一样的,这里只是记录了下思路。之前的博文:全过程实现一个最简单的FPGA项目之PWM蜂鸣器控制这些LED的正极连接510欧姆限流电阻到3.3V电压,负极都连接到了FPGA的IO引脚上。因此,FPGA可以通过引脚的高或低电平控制LED的亮灭状态。8个LED指示灯,我们依次给他们赋值,每次只有一个LED点亮,每次点亮某个LED的时间一定(固定延时)...
2018-08-15 22:30:21 2398 2
原创 记录使用Spartan-6 FPGA进行一次3-8译码器实验
之前仔细的记录过一次PWM蜂鸣器的实验,见博文:全过程实现一个最简单的FPGA项目之PWM蜂鸣器控制,这里就不再仔细的写下全过程了,因为都是一样的过程,只记录一下做这个小实验的思路即可。3-8译码器实验 SW3 SW6,SW5,SW4 复位 点亮LED X X,X,X ...
2018-08-15 22:20:41 1846
原创 读论文之《基于EV10AQ190的高速ADC接口设计》
背景:之前通过数据手册简单地认识了一下 EV10AQ190这款ADC芯片,见博文地址:EV10AQ190A(4核ADC)博客精选目录这个博文目录里面收录了有关博文,可以作为初步参考。回顾:今天看了这篇论文,感觉还挺有吸引力,就做了如下的笔记:如下图,首先以单通道工作方式为例,回顾一下这款ADC芯片的工作模式:外部给该ADC芯片提供一个时钟CLK,频率为2.5GHz,...
2018-08-15 15:12:41 4155 6
原创 时序约束之偏移约束
FPGA的学习,最难的那块,应该就是时序约束了吧。所以,这玩意需要耐心且循序渐进,共勉!本博文内容参考自:《Xilinx FPGA/CPLD设计手册》偏移约束包括 OFFSET_IN_BEFORE、OFFSET_IN_AFTER、OFFSET_OUT_BEFORE、OFFSET_OUT_AFTER 4中约束。偏移约束规定了外部时钟和数据输入输出引脚之间的时序关系,只用于与PAD相连的信号,...
2018-08-15 11:02:34 3775 6
原创 全过程实现一个最简单的FPGA项目之PWM蜂鸣器控制
目录简单介绍:设计思路Verilog HDL硬件语言描述:语言检测引脚分配综合实现器件配置时间不饶人,我快速记录一下这个过程吧。简单介绍:蜂鸣器是一种最简单的发声元器件,它的应用也非常广泛,大都是作为报警或发声提醒装置。PWM即脉冲宽度调制,PWM的输出只有高电平1和低电平0。PWM不停的重复输出周期为T,其中高电平1时间为t的脉冲,t/T是它的占空...
2018-08-15 10:55:32 18911 3
原创 时序约束之周期约束
周期约束周期概念是FPGA/ASIC时序定义的基础,周期(PERIOD)约束附加在时钟网线上,时序分析工具根据PERIOD约束检查时钟域内所有同步元件(包括寄存器、锁存器、同步RAM/ROM等)的时序是否满足要求。PERIOD约束会自动处理寄存器时钟端的反相问题。如果相邻同步元件的时钟相位相反,那么它们之间的延时将被默认限制为PERIOD约束值的一半。PERIOD约束分析的对象包括输入...
2018-08-14 12:06:02 5263
原创 全局时钟资源
目录全局时钟资源简介Xilinx全部时钟资源的使用方法1、IBUFG + BUFG2、IBUFGDS + BUFG3、IBUFG + DCM + BUFG4、Logic + BUFG5、Logic + DCM + BUFG第二全局时钟资源全局时钟资源简介在设计过程中,一般推荐使用同步时序电路。同步时序电路基于时钟触发沿设计,对时钟的周期、占空比、延时、抖动提...
2018-08-13 22:02:39 3696
原创 用行为级描述方式实现一个加法器电路(基于ISE的设计)(2输入1位全加器电路)
准备先用行为级描述方式实现一个2输入一位全加器电路由于后面需要使用综合工具进行综合,这里先声明使用的FPGA是Virtex-7系列的:目的很单纯,就是熟悉一下使用ISE进行FPGA设计的一般流程。硬件语言描述首先使用行为级描述方式的硬件描述语言(HDL)设计一个一位全加器电路,Verilog HDL设计代码如下:`timescale 1ns / 1ps///////...
2018-08-13 17:30:47 6943
原创 使用PlanAhead查看Virtex-7系列FPGA的底层架构
FPGA整体架构下图是FPGA架构的一个整体架构图,可见,Virtex-7系列的FPGA分为20个时钟域(Clock Region),左侧从X0Y0到X0Y9,右侧从X1Y0到X1Y9,命名方式为:X后面的数字表示列,从0开始到1,总共两列;Y表示行,后面的数字从下网上计数,依次为0,1,...,9,总共10行。每个时钟域的长度度为FPGA板子的一半,高为大约为48个CLB的高度。...
2018-08-13 16:03:36 2202 1
原创 MMCME2_ADV介绍 高级混合模式时钟管理器(7 Series FPGA)
目录MMCME2_ADV高级混合模式时钟管理器(Advanced Mixed Mode Clock Manager)IntroductionDesign Entry Method端口描述(Port Descriptions)可用参数以及例化模板介绍MMCME2_ADV高级混合模式时钟管理器(Advanced Mixed Mode Clock Manager)...
2018-08-11 23:40:02 12112 2
反馈清零以及反馈置数计数器(内含Verilog HDL代码及文档)
2018-05-19
模60计数器(通过计数器级联得到)
2018-05-19
数字时钟计数器(包含代码及说明文档)
2018-05-19
乘法器的verilog HDL设计汇总
2018-05-15
移位相加乘法器的verilog HDL设计代码
2018-05-15
串行乘法器verilog HDL设计代码
2018-05-15
查表法乘法器verilog HDL设计代码及其测试文件
2018-05-15
复数乘法器的verilog HDL设计代码及其测试文件(修改版)
2018-05-15
向量乘法器的verilog HDL设计代码及其测试文件(修改版)
2018-05-15
复数乘法器的verilog HDL设计代码
2018-05-14
Wallace树乘法器专题研究
2018-05-14
Wallace树乘法器verilog代码
2018-05-14
数字频率计verilog代码
2018-05-05
chapter2_clocks_resets
2020-06-10
AN10007-Jitter-and-measurement
2020-06-10
Best-FPGA-Development-Practices-2014-02-20
2020-06-10
aurora_8b10b_0_ex_framing.7z
2020-05-14
aurora streaming工程例子程序.zip
2020-05-13
KC705.rar压缩包
2019-12-31
Spartan-6 Libraries Guide for HDL Designs
2018-08-11
西电数值分析ppt合集
2018-07-12
数值分析总览
2018-06-28
8421BCD码计数器(内含文档及Verilog HDL设计代码)
2018-05-19
可逆计数器(内含文档及Verilog HDL设计代码)
2018-05-19
环形计数器、扭环计数器(内含文档及verilog HDL代码)
2018-05-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人