Xilinx ZYNQ 7000入门

ZYNQ是Xilinx推出的新一代全可编程片上系统,将处理器的软件可编程性与FPGA的硬件可编程性完美整合。

ZYNQ7020:xc7z020clg400-2        ZYNQ7010:xc7z010clg400-1

组合了一个双核ARM Cortex-A9(PS)处理器和一个传统的FPGA(PL)。

常用的可编程逻辑器件:

CPLD:基于“乘积项”的与或逻辑阵列;FPGA:基于“查找表”(LUT,Look UP Table)的CLB阵列。

FPGA与单片机的区别:对单片机编程并不改变其电路的内部连接结构,只是根据要求实现的功能来编写运行的程序(指令)。

Verilog与C

Verilog 是硬件描述语言,在编译下载到 FPGA 后会生成电路,所以Verilog 是并行运行的;

C语言是软件编程语言,编译下载到单片机后是存储器中一组指令。而单片机处理软件指令需要取指、译码、执行,是串行执行的。

Verilog 和 C 的区别也是 FPGA 和 单片机/CPU 的区别。FPGA 由于全并行处理,处理速度非常快,这是FPGA最大的优势,这一点是单片机/CPU 替代不了的。

FPGA架构:

硬核:功能专一,有些FPGA才有。

布线资源:用来连接模块。

可编程逻辑单元:Xilinx是CLB,ALTERA是LAB。

底层嵌入功能单元:PLL、DSP等。

嵌入式块RAM:block RAM。

Xilinx家三个系列:Artix(最便宜)、Kintex、Virtex(最高端)。

 7020核心板:

 开发板资源:

 vivado开发流程:

Vivado软件的硬件调试

传统的FPGA板子调试用逻辑分析仪,但测试信号需引出,比较繁琐且昂贵。

Vivado工具集成了逻辑分析仪,用于替换外部的逻辑分析仪,添加ILA核和VIO核。

 FPGA设计流程:

 功能仿真:也称为行为仿真,主要验证电路的功能是否符合设计要求,不考虑电路门延迟与线延迟,验证电路与理想情况是否一致。

时序仿真:也称为布局布线后仿真,是指电路已经映射到特定的工艺环境以后,综合考虑电路的路径延迟与门延迟的影响,验证电路能否在一定时序条件下满足设计构想的过程,能较好地反映芯片的实际工作情况。

testbench

例程:LED灯

DE代码:

module led_twinkle(
    input          sys_clk  ,  //系统时钟
    input          sys_rst_n,  //系统复位,低电平有效

    output  [1:0]  led         //LED灯
);
//reg define
reg  [25:0]  cnt ;
//用网表探针debug时防止软件对变量做优化。
(*mark_debug ="true"*) reg  [25:0]  cnt ;
//对计数器的值进行判断,以输出LED的状态
//assign led = (cnt < 26'd2500_0000) ? 2'b01 : 2'b10 ;
assign led = (cnt < 26'd5)         ? 2'b01 : 2'b10 ;  //仅用于仿真
//计数器在0~5000_000之间进行计数
always @ (posedge sys_clk or negedge sys_rst_n) begin
    if(!sys_rst_n)
        cnt <= 26'd0;
//    else if(cnt < 26'd5000_0000)
    else if(cnt < 26'd10 - 1)  //仅用于仿真
        cnt <= cnt + 1'b1;
    else
        cnt <= 26'd0;
end
endmodule

DV代码:

`timescale 1ns / 1ps
module tb_led_twinkle();
	reg 		sys_clk;
	reg 		sys_rst_n;
	wire [1:0] 	led;
	initial begin
		sys_clk = 1'b0;
		sys_rst_n = 1'b0; 
		#200
		sys_rst_n = 1'b1;
	end 
	always #10 sys_clk = ~sys_clk;
	
led_twinkle u_led_twinkle(
	.sys_clk(sys_clk),
	.sys_rst_n(sys_rst_n),
	.led(led)
	);
endmodule

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值