FPGA的一些规范以及该注意的问题

时间:2025-11-01  作者:Diven  阅读:0

0.模块级的注释

FPGA的一些规范以及该注意的问题

每个模块开始要注明文件名、功能描述、引用模块、设计者、设计时间及版权信息等。

1.宏(Macros)

1、可以把所有的`define放在一个文件中,在编译原代码时首先把这个文件读入

2、如果希望宏的作用域仅在一个模块中有效,就用parameter,==可以用来传递参数==。

3、作用域仅在一个模块中有效,localparam,==不可用来传递参数==。

4、parameter在本Module内有效的定义,可用于参数传递;

从上层传值进下一层常数时,需要在上层用#定义传的值

在下层需要定义对应的参数名字parameter parameter_name;

module_name

#(

.parameter_name(para_value),

.parameter_name(para_value)

inst_name

port map

);

2.FSM

1、verilog描述状态机时必须由parameter分配,而VHDL状态机状态可以在综合时分配产生。

2、组合逻辑和时序逻辑分开用不同的进程

3、状态机主要分为==Mealy==机和==Moore==机,Mealy机的状态和输入有关,而Moore机的状态转换和输入无关。

3.输入不确定的组合逻辑电路

在设计组合逻辑时,需要将不确定的输入转化成确定的输入,然后再完成组合逻辑。

module x2one(in, out);

input in;

output out;

assign out = (in == 1)? 1:0;

endmodule

4.Verilog 中文件输出输出函数的使用方法

1、系统函数$fopen用于打开一个文件,并返回一个整数的文件指针

2、系统函数$fdisplay就可以用这个文件指针在文件中实现写入信息。

3、写完后用$fclose函数关闭文件

==以下语句将”a”和”b”分别显示在”@%h%h”中的两个%h,并写入指针所指的文件W_file.txt==

integer W_file; //定义文件指针

W_file = $fopen(“W_file.txt”);

$fdisplay(W_file, “@%h%h”,a,b);

$fclose(W_file);

4、读文件操作通过readmemh和readmemb函数来完成,分别对应的数据文件为十六进制和二进制

reg[15:0]c[0:15];

$readmemh(“R_file.txt”, c);

5.Verilog 中预处理

verilog预处理与C很类似,预处理符号`开头。

==注:在引用已定义的宏名时,必须在宏名前加`。==

`include file.v  //包含文件file.v

`define  X 1    //定义宏x 值为1

`ifdef X

z = 1;

`else

z = 0;

`endif

6. tri和wire的用法区别

连线与三态线(tri)网语法和语义一致。

tri是用来强调三态门的使用,三态门值 0 1 X Z。

三态线可以用于描述多个驱动源驱动同一根线的线网类型;并且没有其特殊的意义。

7. pullup和 pulldown的用法

如果两个INOUT都处于高阻态,那么接收到的信号到底是什么状态呢?这实际上等效为两个INPUT端口连接,也就等效为INPUT端口悬空。

这应该是取决于外围的驱动,添加的上拉或者下拉电阻,一般而言,FPGA添加的是上拉电阻,也就意味着此时chipscope采集的数据是高电平。

FPGA管脚内部可以配置弱上拉或下拉电阻来实现Z状态下的控制。

在verilog代码中直接可以定义信号线的==上拉==或者==下拉==模式

或者在约束文件中也可以也可以通过约束文件中配置信号线的上拉或者下拉模式

具体用法:

pullup p1 ( );

8. 下面代码中的wire和assign用法有什么区别

paramenter addr =4‘h0;

input [13:0] aaa;

wire ccc=aaa[13:10]==addr;

------------------------------------------

assign bbb=(aaa==16’d0);

从用法来说是一样的,assign是线的赋值语句,普通的io口也可以直接赋值,其实io口在电路上就是wire。

reg 与 寄存器实际上应该反过来讲:

- 如果要综合寄存器,需要同时满足俩个条件:

定义为reg,

在always @posedge(negedge) block中赋值

- 如果要综合组合逻辑,可以(任意):

定义为wire, 用assign赋值

定义为reg, 只在always @(a b c d) block中赋值

在verilog语言中的reg类型只是语法意义上。reg类型的变量不能通过assign赋值,而wire类型的变量不能在always block中赋值。

9. verilog中generater语句的使用,以及genvar用法

在Verilog-2001里,新增加的generate语句拓展了这种用法(其思想来源于VHDL

语言)。除了允许复制产生primitive和module的多个实例化,同时也可以复制产生多个net、reg、parameter、assign、always、initial、task、function。

generate语句有generate-for、genreate-if和generate-case三种语句

generate-for语句必须用genvar关键字定义for的索引变量。

module gray2bin2 (bin, gray);

prameter SIZE = 8;

ouput [SIZE-1:0] bin;

input [SIZE-1:0] gray;

reg [SIZE-1:0] bin;

genvar i;

generate

for(i=0; i 《 SIZE; i=i+1)

begin: bit

assign bin[i] = ^gray[SIZE-1:i]

end

endgenerate

endmodule

9. verilog中 {}和{{}}的区别。

{}表示拼接,{第一位,第二位,…}

{{}}表示复制,{4{a}}等同于{a,a,a,a}

10. IBUFDS、IBUFGDS和OBUFDS差分信号缓冲

IBUFDS、IBUFGDS和OBUFDS都是差分信号缓冲器,用于不同电平接口之间的缓冲和转换。

IBUFDS是差分输入的时候用;

OBUFDS是差分输出的时候用;

IBUFGDS则是时钟信号专用的输入缓冲器

具体见笔记中《==FPGA差分信号缓冲的转换(IBUFDS、IBUFGDS和OBUFDS)==》

11. 时钟配置中MMCM 与PLL的不同点

MMCM 混合时钟管理单元也是由pll构成,只是增加了一些额外性能, 比如给定输入时钟中的频率约束输出时钟频率相位的关系,生成不同的时钟,其实内部也是pll去经过VCO环路锁定输出的。可以理解为MMCM比PLL更高级复杂一些的时钟管理单元。

猜您喜欢

排阻是应用于电子设备中的元件,主要用于限制电流和保护电路。在选择和使用排阻时,了解其规格非常重要。本文将为您详细介绍如何看懂排阻的规格,从而帮助您在选购和应用时...
2025-04-17 15:30:07

发光二极管(LED)是应用于照明和显示技术的半导体器件,其核心特性就是正向导通电压。正向导通电压是指当LED在正向偏置下工作时,流过电流达到一定值(通常是额定电...
2025-04-02 19:01:40

温控开关是现代家居和工业中不可少的设备,主要功能是根据环境温度自动调节设备的运行状态。不同类型的温控开关在设计和应用上存在一些显著的区别。温控开关可以分为机械式...
2020-12-04 00:00:00

贴片电阻,作为电子电路中不可或缺的元件,其封装尺寸和精度要求直接影响着电路板的设计和性能。选择合适的贴片电阻,对于确保电路的稳定性和可靠性至关重要。贴片电阻的封...
2024-11-26 11:29:17

电学中,电阻和电流是两个密切相关的概念。根据欧姆定律,电流与电压和电阻之间的关系是非常重要的。许多人可能会认为电阻越大,电流就会越小,但实际上,电阻变大时,电流...
2025-04-15 08:31:08

电阻分流器作为重要的测量和保护元件,应用于各种电子设备和工业控制系统中。华润电阻作为国内知名的电子元器件制造商,其电阻分流器产品凭借高质量和多样化的型号,赢得了...
2019-06-02 21:54:09

浮球液位开关是一种常见的电气装置,广泛应用于水箱、水塔和排污坑等场所,常常配合交流接触器用于排污泵、排水泵和补水泵的电路中,应用范围非常广泛。霍尔浮球液位开关包...
2023-10-16 11:12:00

电子电路设计中,钳位电路是常见的保护电路,用于限制信号电压的范围,防止过高或过低的电压对电路造成损坏。二极管作为钳位电路中的关键元件,其特性使得钳位电路在各种应...
2025-04-10 09:31:42

各种电子设备中,从手机到笔记本电脑,从LED灯到电动汽车,都离不开一种关键的电子元件——DC-DC开关电源芯片。像一位高效的能量转换大师,默默地将电源适配器提供...
2024-02-06 00:00:00

接地编织带是应用于电气和电子设备中的重要组件,其主要优势体现在几个方面。接地编织带具有优良的导电性能。采用高导电材料制成,能够有效降低电阻,确保稳定的电流传导,...
2025-06-15 00:00:00