一、介绍
Vivado是Xilinx公司出品的高级综合工具,是用于FPGA设计的强大工具。在Vivado中,设计师可以使用HDL(硬件描述语言)或图形界面进行设计。它支持各种FPGA和SoC器件,能够实现综合、实现、仿真和验证等功能。此外,Vivado还支持多媒体和通信等领域的开发。
Vivado在FPGA工程行业中占据着广泛的市场,设计人员可以使用它来创建复杂的数字电路,进行实现、验证和仿真。2017.4版本是Vivado的一个重要更新,提供了许多新的特性和功能。
二、新特性与功能
1.支持机器学习
这个版本为FPGA设计工具添加了对OpenCV和Caffe框架的支持,这使得设计人员能够通过FPGA实现更高效的机器学习。Vivado可以生成高度定制的FPGA IP,以实现高性能的图像、视频和信号处理。这为图像和视频处理等领域提供了更好的解决方案。
2. IP支持新特性
此版本的Vivado中添加了许多新的IP(知识产权)和功能模块。一些新的IP包括:PCIe 4.0,NVMe SSD控制器,DisplayPort 1.4 Tx,10/25/40/50/100GbE MAC和PHY。此外,IP核还可以快速升级、导入和导出。
3. 集成的 Vivado HLS
Vivado 2017.4版本还改进了Vivado HLS的集成,这是一个C代码的高级综合器,用于将C代码转换为RTL(寄存器传输级)代码。实现了将C代码直接转换为IP核,可以大大提高设计速度和开发效率。
4. 更多的设计流程控制和Debug能力
此版本添加了新的Design Flows Manager,为设计人员提供了更完整的设计可视化控制流。同时,它还添加了新的Debug IP,提供了设计错误的日志和实时分析。
三、示例代码
1. Verilog代码
module counter( input wire clk, input wire rst, output reg [7:0] count ); always @(posedge clk or negedge rst) begin if(!rst) begin count <= 8'd0; end else begin count <= count + 8'd1; end end endmodule
2. VHDL代码
entity counter is port ( clk: in std_logic; rst: in std_logic; count: out std_logic_vector(7 downto 0) ); end counter; architecture Behavioral of counter is begin process(clk, rst) begin if rst = '0' then count <= (others => '0'); elsif rising_edge(clk) then count <= count + 1; end if; end process; end Behavioral;
3. Tcl脚本
set_property -dict [list \ CONFIG.PCW_OVERRIDE_BOARD_PART xc7vx485tffg1157-2 \ CONFIG.PCW_BOARD_INTERFACE_TYPE -jtag_cfg \ CONFIG.PCW_OLD_PART_TO_NEW_PART_MAP {xc7vx485tffg1157-2 xc7vx690tffg1761-2}] \ [get_projects v_pro_inst]
四、总结
2017.4版本的Vivado是FPGA设计工具方面的一个重要更新。它添加了许多新的特性和功能,以便设计人员能够更快速地开发出复杂的数字电路。新的IP核、机器学习和高级综合器都是Vivado 2017.4的亮点。此外,集成的Design Flows Manager和Debug IP使得开发者能够更好地流程控制和Debug。此外,示例代码提供了在Vivado平台上使用Verilog、VHDL和Tcl进行FPGA开发的示例。