FPGA学习笔记1

FPGA学习笔记1

一、Verilog语言
Verilog HDL是一种硬件描述语言,以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。
Verilog 设计的基本单元是模块(module)
它的基本形式为module name
 (
 	a,
 	b,
 	c
);
input a;
input b;
output c;
xxxxxxxx
endmodule
name为设计的模块的名字,双括号之间的是模块的信号,并定义其类型,是输入或者输出。然后再将他们用时序逻辑或组合逻辑给定一定的联系,使他们能够实现某种特定的功能。
例如module add(a,b,c);
	input a;
	input b;
	output c;
	assign c = a + b;
endmodule
这就是一个简单的加法器的设计。

二、模块功能设计

一个模块的信号设计好之后就是怎样才能让他们实现特定的功能,这时候就要来描述他们之间的逻辑了。
always()块,当括号里的条件符合后,就会进入到always块里去执行相应的语句,一般用来描述时序逻辑。

assign语句,一般用来描述组合逻辑,不用考虑到信号之间的时序匹配问题。

数据信号类型,在功能的设计中也会像C语言一样来定于信号的数据类型,比较常见的有reg型,wire型。

reg英语单词原型为regist,意思是寄存器,用来暂时存储信号,比如定义一个数据reg a[3:0];这时a是用有4位的一个寄存器型数据,它可以用来存储4位2进制数据,input信号默认为reg型。

wire的英文意思为线,在Verilog中,wire型数据就像一条数据线一样,连接两个端口,完成数据传输,output的信号默认为wire型。

paramter 类似于C语言中的宏定义,给一些数据常量给与特定的名称,方便阅读和调用,paramter result = 7,定义result的值为7,还要localparam,他的功能和paramter类似,但localparem定义的数据只能在本模块中有效,在其他模块中并不等于它定义的有效值。localparam定义的参数是不能进行模块的参数传递,而paramter可以。

还要许多数据类型,暂时只学到了这些,所以只列举了几个。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值