FPGA学习笔记

image-20210121225314658

verilog语法程序框架

关键字

image-20210121225528980

常用关键字

image-20210121225546929

verilog程序框架

c语言的函数——verilog的模块(block)

阻塞赋值、非阻塞赋值

阻塞赋值:在前一条语句赋值完成之前会阻塞后一条语句赋值

非阻塞语句:赋值会同时进行。

image-20210121232928687

image-20210121233148548

image-20210121233242559

状态机

image-20210122113718301

image-20210122113734116

image-20210122113956723

状态机设计

状态空间定义
状态跳转(时序逻辑)
下个状态判断(组合逻辑)
各个状态下的动作(组合逻辑或时序逻辑)

进程

image-20210201171048967

在进行数字系统设计时,设计进程应注意一下几点:

  1. 将硬件电路的行为以合理的方式映射为一些进程,对每个进程,以最有效的方式进行设计,以最合理的方式描述并实现

  2. 将组合逻辑实现的电路和用时序逻辑实现的电路应尽量分配到不同的进程中。

  3. 多个进程之间通过信号线进行通信。在设计中,为了使多个进程协调运行,我们可以设置一些握手信号,在进程中检测这些握手信号的状态,以决定是否进行必要的额操作。在有的设计中,这种握手信号的协调使必不可少的。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oMYcFBg3-1613318036824)(https://gitee.com/root__locus/pic_cloud/raw/master/image-20210201171730051.png)]

任务(TASK)

任务和函数的关键字分别是task和function,利用任务和函数可以把一个大的程序模块分解成许多小的任务和函数,以方便调试,并且能使写出的程序结构更清晰。

例子

task test;//任务定义
    input in1,in2;
    output out1,out2;
    
    #1 out1 = in1 &in2;
    #1 out2 = in1 |in2;
endtask

test (data1,data2,code1,code2);//调用任务

image-20210203124157929

函数

在日常查阅文献时,发现verilig好像也有函数的功能,(我一开始以为只有模块的调用以及连接)。有了函数,那就好说了。着整的是C语言者的福音啊。

与C语言相类似,Verilog HDL使用函数,以适应对不同操作数采取同意运算操作。函数在综合时被转换成具有独立运算功能的电路,没调用一次函数,相当于改变这部分电路的输入,以的到响应的计算结果。函数使用与任务相比有更多的限制和约束。例如,函数不能启动仍无,在函数中不能包含任何的时间控制语句,同时定义函数至少要有一个输入参量灯,这些都需要在使用时注意。【1】

function [7:0] get0;
    input [7:0] x;
    reg	[7:0] count;
    integer i;
    begin 
        count = 0;
        for(i=0;i<=7;i=i+1)
            if(x[i]=1'b0) count = count +1;
        get0 = count;
    end
endfunction

output [7:0]dout;
input [7:0]data;
assign dout = get0[data]; //函数调用

参考资料

end
endfunction

output [7:0]dout;
input [7:0]data;
assign dout = get0[data]; //函数调用




## 参考资料

[1]《Verilog HDL 程序设计教程》 编著:王金明
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值