当前位置: 首页 > article >正文

1. ZYNQ 2. MPSOC 3. FPGA 4. IO分配 5. 硬件设计

### 1. PS DDR设置参数

在FPGA设计中,PS(处理系统)与DDR(双倍数据速率)内存的设置非常重要,以下是一些基本参数和配置:

- **IO电压配置**:对于不同的Bank(如Bank0、Bank1等),需要确保电压配置为LVCMOS 1.8V,以保证信号的稳定性与兼容性。

### 2. IO分配

- **外设MIO分配**:

  - QSPI FLASH、SD卡、EMMC、CAN接口、I2C、PMU、串口、看门狗、TTC定时器、以太网、USB、DP和SATA等接口的IO分配,这些都需在设计中逐一配置,确保各个外设能够正常工作。

### 3. 配置操作步骤

- **完成配置后**:点击OK并保存配置,以便在后续操作中使用。

- **导出BD配置文件**:可以导出Block Design (BD)的脚本文件,以便于后续的工程恢复和重用。

### 4. 生成输出产品

- **右击system.bd**:选择“Generate Output Products”,并等待生成成功。

- **创建HDL Wrapper**:右击system.bd,选择“Create HDL Wrapper”,该步骤用于生成顶层HDL文件。

### 5. 查看源码层次结构

- **顶层文件**:在生成的顶层文件system_wrapper.v中,可以查看其结构,并发现与Block Design中的设计一致。

### 6. 示例代码

以下是一个简单的FPGA设计示例,主要用于LED控制:

```verilog

module run_led#

(

parameter TSET = 32'd49_999_999

)

(

input diff_clock_clk_p,

input diff_clock_clk_n,

input RSTn_i,

output reg [1:0] LED_o

);

wire clk_i;

IBUFGDS CLK_U(

.I(diff_clock_clk_p),

.IB(diff_clock_clk_n),

.O(clk_i)

);

reg [31:0] tcnt;

always @(posedge clk_i) begin

    if(!RSTn_i)

        tcnt <= 32'd0;

    else if(tcnt < TSET)

        tcnt <= tcnt + 1'b1;

    else

        tcnt <= 32'd0;

end

wire led_en = (tcnt == TSET);

always @(posedge clk_i) begin

    if(!RSTn_i) begin

        LED_o <= 2'b1;

    end else if(led_en) begin

        if(LED_o == 2'b10)

            LED_o <= 2'b1;

        else 

            LED_o <= LED_o << 1;

    end

end

endmodule

```

### 7. 生成比特流

- **Run Implementation**:执行生成比特流,确保FPGA可以加载生成的比特流文件。

### 8. 编译并导出平台文件

- **导出硬件**:在Vivado中选择“File -> Export -> Export Hardware”,将硬件导出为XSA文件,包含bitstream,以便于后续的软件工程师使用。

通过这些步骤和设置,设计师可以有效地配置和管理FPGA与SoC的硬件设计,为后续的软件开发打下良好的基础。


http://www.kler.cn/news/314069.html

相关文章:

  • 【运维项目经历|044】云迁移与CI/CD管道优化项目
  • AUTOSAR_EXP_ARAComAPI的5章笔记(9)
  • 面试爱考 | 设计模式
  • 线程(三) 线程的互斥
  • 一些常用的 Docker 命令
  • Android外接USB扫码枪
  • android google play应用发布上架流程PDF下载
  • Spring Boot和AOP将API输入输出数据存入数据库
  • 测试工具笔记
  • MATLAB窗口操作常用命令
  • Leetcode 144. 二叉树的前序遍历(Easy)
  • vscode c++编译环境配置
  • 【数据结构与算法 | 灵神题单 | 二叉搜索树篇】力扣99, 1305, 230, 897
  • 在线免费公共DNS解析服务器列表
  • 计算机毕业设计 基于Python的校园个人闲置物品换购平台 闲置物品交易平台 Python+Django+Vue 前后端分离 附源码 讲解 文档
  • 信息安全数学基础(19)同余式的基本概念及一次同余式
  • 【Java】关键字-final【主线学习笔记】
  • Java 数据结构 最小栈的实现
  • ES6的简单介绍
  • C++: 类和对象(上)
  • 【EasyBlog】基于React+AntD+NextJS+NestJS+MySQL打造的开源博客系统
  • 深耕电通二十年,崔光荣升电通中国首席执行官
  • Java 入门指南:JVM(Java虚拟机)垃圾回收机制 —— 垃圾回收算法
  • 机器学习-点击率预估-论文速读-20240916
  • markdown-it:将Markdown文本转换为HTML格式,展示在页面,怎么自定义里面的a标签设置为在新标签页打开
  • GEE 案例:如何利用LST脚本快速计算指定区域的LST和时序的LST
  • 14 vue3之内置组件trastion全系列
  • pandas 生成excel多级表头
  • [Java]SpringBoot能力进阶
  • 九章云极DataCanvas公司荣获2024年服贸会“科技创新服务示范案例”