FPGA学习中的小知识4
2010-11-03 20:21
239 查看
34、在仿真文件中,输出的变量都为wire数据类型。
35、Verilog中不存在j++语句。function、mask都要有endfunction、endmask来结束。
36、如果function有返回值,function后面要加返回值的宽度和返回值的名称。如:
module tryfunct(clk,n,result,reset);
input clk,reset;
input [3:0] n;
output [31:0] result;
reg [31:0] result;
always @(posedge clk or i)
begin
if(!reset)
result=0;
else
result=sqr(n);
end
function [31:0] sqr;
input [3:0] j;
sqr=j*j;
endfunction
endmodule
在function [31:0] sqr;如果语句在function后面,没有[31:0],就会出现逻辑错误,并没有语法错误。
37、initial是在系统开始运行的时候,可以理解为在0时刻之前运行。当使用多个initial时,是为了实现程序并行,因为如果放在一个initial时,会在initial中逐条运行,不符合设计要求。
38、FPGA开发流程--需求分析到模块划分
需求说明文档
器件选型:逻辑资源、功耗、IO数量、封装
配置电路
开发工具选择
电路板的可扩展性
在线调试和板级调试
分模块设计
39、模块端口声明为net数据类型可以的是input、output、inout。而模块端口声明为register数据类型的只能是output。
40、在定义负数时,在位宽前面加负号,在其他位置都会出错。
41、==只支持0和1,而===(条件相等)支持所有的数值,如x、z,常用于仿真。
42、casez:认为case条件下的所有z值不重要,不是逻辑值,所有z值也可以表示为?。
casex:认为case条件下所有x和z值不重要,不是逻辑值。用x表示。
43、forever要保持时间的前进。
44、注意for循环中的函数,如果,for循环中有一个乘法器,则在电路中就会有四个乘法器。
45、时间单位:1 s = 10^3 ms = 10^6 us = 10^9 ns = 10^12 ps = 10^15 fs=10^18阿秒=10^21渺秒=10^43普朗克常数
46、脉冲边沿检测法:
reg [2:0] key_rst;
always @(posedge clk or negedge rst_n)
if(!rst_n)
key_rst=3'b111;
else
key_rst={bu1,bu2,bu3};
reg [2:0] key_rst_r;
always @(posedge clk or negedge rst_n)
if(!rst_n)
key_rst_r=3'b111;
else
key_rst_r=key_rst;
//检测下降沿
wire [2:0] key_an=key_rst_r & (~key_rst);
//检测上升沿。
wire [2:0] key_an=(~key_rst_r) & key_rst;
35、Verilog中不存在j++语句。function、mask都要有endfunction、endmask来结束。
36、如果function有返回值,function后面要加返回值的宽度和返回值的名称。如:
module tryfunct(clk,n,result,reset);
input clk,reset;
input [3:0] n;
output [31:0] result;
reg [31:0] result;
always @(posedge clk or i)
begin
if(!reset)
result=0;
else
result=sqr(n);
end
function [31:0] sqr;
input [3:0] j;
sqr=j*j;
endfunction
endmodule
在function [31:0] sqr;如果语句在function后面,没有[31:0],就会出现逻辑错误,并没有语法错误。
37、initial是在系统开始运行的时候,可以理解为在0时刻之前运行。当使用多个initial时,是为了实现程序并行,因为如果放在一个initial时,会在initial中逐条运行,不符合设计要求。
38、FPGA开发流程--需求分析到模块划分
需求说明文档
器件选型:逻辑资源、功耗、IO数量、封装
配置电路
开发工具选择
电路板的可扩展性
在线调试和板级调试
分模块设计
39、模块端口声明为net数据类型可以的是input、output、inout。而模块端口声明为register数据类型的只能是output。
40、在定义负数时,在位宽前面加负号,在其他位置都会出错。
41、==只支持0和1,而===(条件相等)支持所有的数值,如x、z,常用于仿真。
42、casez:认为case条件下的所有z值不重要,不是逻辑值,所有z值也可以表示为?。
casex:认为case条件下所有x和z值不重要,不是逻辑值。用x表示。
43、forever要保持时间的前进。
44、注意for循环中的函数,如果,for循环中有一个乘法器,则在电路中就会有四个乘法器。
45、时间单位:1 s = 10^3 ms = 10^6 us = 10^9 ns = 10^12 ps = 10^15 fs=10^18阿秒=10^21渺秒=10^43普朗克常数
46、脉冲边沿检测法:
reg [2:0] key_rst;
always @(posedge clk or negedge rst_n)
if(!rst_n)
key_rst=3'b111;
else
key_rst={bu1,bu2,bu3};
reg [2:0] key_rst_r;
always @(posedge clk or negedge rst_n)
if(!rst_n)
key_rst_r=3'b111;
else
key_rst_r=key_rst;
//检测下降沿
wire [2:0] key_an=key_rst_r & (~key_rst);
//检测上升沿。
wire [2:0] key_an=(~key_rst_r) & key_rst;
相关文章推荐
- 深度学习FPGA实现基础知识15(Matlab图像处理“卷积”运算)
- 深度学习FPGA实现基础知识13(向专家致敬--深度学习-LeCun、Bengio和Hinton的联合综述)
- FPGA学习中的小知识3
- 深度学习FPGA实现基础知识6(Deep Learning(深度学习)学习资料大全及CSDN大牛博客推荐)
- 深度学习FPGA实现基础知识9(Deep Learning(深度学习)Matlab工具箱下载、安装、测试)
- 深度学习FPGA实现基础知识18(Matconvnet学习笔记)
- 深度学习FPGA实现基础知识16(图像处理中任意核卷积(matlab中conv2函数)的快速实现)
- 深度学习FPGA实现基础知识19(通过文件读写方式实现Matlab和Modelsim的联合仿真)
- FPGA学习中的小知识2
- 深度学习FPGA实现基础知识1(网友关于FPGA机器学习想法)
- 深度学习FPGA实现基础知识6(Deep Learning(深度学习)学习资料大全及CSDN大牛博客推荐)
- 深度学习FPGA实现基础知识14(如何理解“卷积”运算)
- 深度学习FPGA实现基础知识10(Deep Learning(深度学习)卷积神经网络(Convolutional Neural Network,CNN))
- 深度学习FPGA实现基础知识10(Deep Learning(深度学习)卷积神经网络(Convolutional Neural Network,CNN))
- 2.深度学习FPGA实现基础知识17(图像处理卷积运算 矩阵卷积)
- 深度学习FPGA实现基础知识20(FPGA小数运算--DSP基础“定点小数运算”)
- 深度学习FPGA实现基础知识17(图像处理卷积运算 矩阵卷积)
- 深度学习FPGA实现基础知识2(深度揭秘百度大脑AI专有芯片 缘何用FPGA而非GPU?)
- FPGA学习--基础知识
- 深度学习FPGA实现基础知识5(网友一致认可的----Deep Learning(深度学习)学习笔记整理及完整版下载)