《FPGA开发-1-verilog基本语法》

本文介绍了FPGA开发中常用的语言Verilog,并对比了VHDL。内容涵盖Verilog的基本结构,包括module、assign和always语句的用法,以及FPGA开发平台Quartus II和Xilinx Vivado的差异。
摘要由CSDN通过智能技术生成

FPGA一般由verilog和VHDL语言开发,但由于verilog与C语言语法相像,更容易让初学者快速掌握这门语言,于是在应用宽度方面是verilog更胜一筹,但VHDL最初是用于军方产品的开发语言,所以VHDL的语法更加严谨,此次我们以广受使用的verilog语言为基础开发FPGA。

一、FPGA开发平台(载体)
FPGA作为芯片,需要通过使用开发语言以平台为载体进行FPGA设计,目前开发FPGA主要为两大平台------Quartus || 和vivodo,前者开发FPGA芯片和软件是Altera公司生产的,后者是Xilinx公司的,Quartus || 软件容量不大,常用的13版本为九个G,vivodo软件一般约为40G,虽然前者容量不大,但前者功能可能没有后者多,这个需要看开发者使用的是哪一家公司的FPGA芯片。

二、verilog基本结构

module LED(
input 		sys_clk,
input		sys_rst_n,

output		led
);
.........
.........
endmodule

以上是verilog的基本结构,verilog没有C语言中的括号,但它使用了begin和end作为括号,module代表一个块,类似于C语言中的函数名,这个块的名字最好与文件名一致,块后面有一个括号,里面定义了这个块的输入输出,注意,所有的input输入和output输出都是相对于FPGA来说的,进入FPGA就是input,从FPGA出去就是output输出,注意逗号与分号的使用,当然里面还没有填充过程。

2.1、assign语句

module LED(
input 		sys_clk,
input		sys_rst_n,

output		LED
);

wire 	LED ;

assign 	LED = 1'b1;	
	
endmodule

assign表示组合逻辑,所以使用等于号进行赋值,注意,verilog是并行执行的语言,所有的语句不分先后顺序,同时开始。

2.2、always语句

module LED(
input 		sys_clk,
input		sys_rst_n,

output		LED
);

reg   	LED ;

always @(posedge sys_clk or negedge rst_n) begin
	if(!rst_n) begin
		LED <= 1'b0;
	end
	else begin
		LED <= 1'b1;
	end
end	

endmodule

always表示时序组合逻辑,括号中的posedge表示上升沿,negedge表示下降沿,即在时钟clk的上升沿或者复位的下降沿时才执行其中的语句,里面的第一条语句表示复位为低电平的时候有效,执行LED <= 1’b0,<=是时序逻辑的赋值,不等于小于等于符号,1’b1表示位宽为1位,b表示二进制,后面的0表示二进制的0,1’b0表示十进制的0,若不为复位信号,则进行LED <= 1’b1,相当于给LED赋值1。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

livercy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值