原创 [博客大赛]关于verilog和数字电路的关系(一)

2013-8-27 14:21 3242 17 18 分类: FPGA/CPLD 文集: xilinx FPGA
        学习FPGA,得学习一门硬件描述语言,业内主流的两种语言便是VHDL和verilog语言的语法和C语言类似,编码比较紧凑,原件例化比较灵活方便,因此使用起来比较顺手,所以选择verilog进行学习。verilog是一门硬件描述语言,顾名思义,就是用来描述硬件的。利用C语言般的语法,来描述数字电路的底层基本单元,然后通过对连线的描述,从而告诉软件,我们需要一个什么样的电路。
        众所周知,C语言是一个顺序执行的代码,为什么可以利用C语言的语法来描述一个电路结构?竟然可以像画图般,利用C语言绘画出一幅电路图,然后由软件根据一幅这样的电路图来完成电路的生成。下面看看xilinx的xst是怎么根据一些C语言的语法以及一些新的关键词生成数字电路中基本电路原件和模块。

1、触发器

 

always @(posedge clk)
begin
if (rst) Q <= 4 ’b0011;
else if Q <= D; end

 

通过一个always+posedge clk,任何一个“<=”即描述了一个触发器,if下的条件只是这个触发器上的众多扩展口。当然,受到posedge clk的影响,全部变成了时钟同步信号。

2、锁存器

always @ (G or D)
begin
    if (G)
        Q <= D;
end
        锁存器类比寄存器少了时钟,因此一个always下的“<=”即描述了一个锁存器,if下的条件只是这个锁存器上的扩展口。

3、三态门

always @(T or I)
begin
    if (~T)
        O = I;
    else
        O = 1’bZ;
End
        或者
assign O = (~T) ? I: 1’bZ;
        “=”在verilog里称为连续赋值,物理上便是畅通无阻,如一根导线般,导线输入端数据变化,输出端即迅速变化成输入端的数据。因此always下的“=”不会产生锁存器或者寄存器。上述两种描述均产生三态门。

4、算数运算符

        在verilog中,“+ - * /”即描述了一加法器、减法器、乘法器、除法器。当然,这些运算单元还是由一些门来组成,像现在FPGA内部一般都嵌入了DSP单元,因此综合器会把这些基本单元直接综合至DSP中。

5、逻辑操作符

        与或非等逻辑操作符,综合器会自动生成相应的逻辑门,来搭建组合电路,我们通过操作符和连线的描述,来绘制组合逻辑。当然FPGA的底层实现不一定是逻辑门,现在的FPGA都采用查找表技术来实现逻辑函数。

6、移位寄存器

always @(posedge clk)
begin
    if (clken)
        shreg <= {shreg[WIDTH-2:0], SI};
end
        上述代码描述了一个宽度为WIDTH的移位寄存器,SI是移位寄存器的输入。

 

 
 
 
 
 

文章评论1条评论)

登录后参与讨论

用户1002534 2013-8-13 21:50

博主 好牛叉,顶!!!!
相关推荐阅读
用户449796 2013-09-20 11:39
基于Matlab的数字图像处理——滤波原理——非线性空间滤波
概述     我们已经知道,线性空间滤波即为掩膜矩阵和图像矩阵的卷积/相关运算。本质上来说,是像素点值与像素点邻域像素点值之间的一种特殊运算关系,因为其运算规则为邻域像素点与对应掩膜系数相乘后相加的线...
用户449796 2013-09-08 21:35
数据结构学习笔记--线性表
数据结构学习笔记之线性表 1. 线性表      线性表是指:零个或多个数据元素的有限序列。      线性表的特点是:第一个元素无前驱,最后一个元素无后继。其他每个元素有且只有...
用户449796 2013-09-08 17:00
数据结构学习之数据结构相关定义
数据结构学习笔记之数据结构相关定义   1. 数据相关定义 何为数据结构?       答:数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。 ...
用户449796 2013-09-08 16:47
数据结构学习笔记--数据结构相关定义
  数据结构学习笔记之数据结构相关定义 1. 数据相关定义 何为数据结构?       答:数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。 ...
用户449796 2013-09-02 10:19
verilog中两个常用的选择器if和case
   看过一些资料,是研究if和case的好处和坏处,在什么时候该用if,在什么时候该用case等等的。但是看完这些分析后,并没有很明确地体会到这两者的优缺点,也没有体会这两个选择器该什么时候...
用户449796 2013-08-27 14:25
[博客大赛]详解如何搭建S5PV210的Eclipse集成开发环境(一)
  一、详解如何搭建S5PV210的eclipse集成开发环境 1. S5PV210处理器简介         S5PV210处理器是Samsung公司2009年推出的一款Cortex...
我要评论
1
17
关闭 站长推荐上一条 /2 下一条