赞
踩
**HDL(Hardware Description Language)**硬件描述语言是对硬件电路进行行为描述、寄存器传输描述或者结构化描述的一种语言。
FPGA作为可编程硬件,采用HDL语言作为编程语言。
通过HDL语言可以对FPGA的功能进行描述,描述完成后的源代码,通过综合(将高层次的寄存器传输级别的HDL设计转化为优化的低层次的逻辑网表)和实现及生成目标文件后,下载到FPGA以实现对FPGA进行配置,配置后的PGA实现了HDL语言描述的功能。(下载:1.jtag调试模式,断电,消失2.下载到flash)
从模块的声明开始,最开始就是关键词module ,然后是这个模块的名字叫AND4 ,最后是endmodule。assign是是组合逻辑的赋值语句。
module AND4(a,b,out);
output[3:0] out; //4位输出
input [3:0] a,b; //4位输入a和b
assign out=a&b; //out=a与b进行按位与
endmodule
法一:端口声明和端口定义分开写
module AND4(a,b,out);
output[3:0] out;
input [3:0] a,b;
assign out=a&b;
endmodule
法二:端口声明和端口定义写在一起
module AND4(input [3:0]
a, input [3:0] b,
output[3:0] out);
assign out=a&b;
endmodule
2分频:在always块中只能对寄存器变量赋值。
module FenPin(input clk_in, output clk_out);
reg c_out=0;
assign clk_out=c_out;
always @ (posedge clk_in)
begin
c_out=~c_out;
end
endmodule
module 模块名(端口名1,端口名2,端口名3,端口名4,...);
端口定义说明(input,output,inout);
参数定义(可选);
数据类型定义(wire,reg等);
//…………………………以上为描述接口说明部分…………………………//
//…………………………以下为描述逻辑功能部分…………………………//
实例引用低层次模块和基本门级元件;
连续赋值语句(assign);
过程赋值语句(initial和always);
功能描述语言;
任务和函数;
endmodule
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。