NIC400生成Flow全解析(八)Micro Architechture

当所有配置完成后,就可以生成Micro Architechture了。在Micro Architechture中也会进行一系列配置。比如微架构、timing closure、buffering等配置。
生成Micro Architechture的方法如下:

在这里插入图片描述


生成时需要解决掉所有报错问题后,即可打开Micro Architechture。打开方式如下:

在这里插入图片描述


大致界面如下:

在这里插入图片描述

其中主要包含了如下元素:

  • Micro Architechture窗口
  • Parameter/Timing Closure/Buffering窗口
  • Overlays窗口

1.Micro Architechture窗口

该窗口主要是设定需要的互联微架构,AMBA Designer生成NIC-400时需要手动定义,Socrates生成NIC-400时会根据工具内部算法生成一个微架构。生成后也可以根据自己的需求进行调整。图中的各种标志如下所示:

在这里插入图片描述


Micro Architechture的左边有一排按键,11个按键的含义从上到下依次为:

  • Zoom in:视图放大
  • Zoom out:视图放小
  • Zoom fix:最佳视图
  • Creat Group:创建Group。比如想在两个接口之间,或一个BusMatrix和一个ASIB或AMIB之间连接,则可以选中目标后点击Group
  • Connect:连接不同的组件。
  • Delete:删除组件。
  • Create IB:创建IB,在不同的BusMatrix之间连接时通常会自动创建
  • Create GPV:创建GPV
  • Create Default slave:创建Default slave
  • Optimize Switch:优化BusMatrix结构,丢弃不存在的Path
  • Layout:重新排列视图,使Micro Architechture美观

我们可以自定义微架构,比如想让CPU访问SRAM和FLASH的延时尽可能小,就可以使CPU和FLASH ,SRAM之间只经过一级BusMatrix。自定流程如下:

分别选中2个switch执行Optimize Switch优化不必要的结构,最后点击Layout则可呈现比较规则的Micro Architechture。

在这里插入图片描述

同理,cpu也要访问其他如timer,uart的外设,因此按"Ctrl"先选中switch5再选中switch4,然后点击”Connect“:

在这里插入图片描述


直到Micro Architechture上没有黄色虚线,才表示苏哦有的互联关系都有了实际的电路访问。

由于dma也需要访问flash和sram,因此这里让switch4和switch5之间连接,也就是说,如果DMA想访问flash的话,需要先经过switch5,再经过switch4。按"Ctrl"先选中switch4再选中switch5,然后点击”Connect“:

在这里插入图片描述

按"Ctrl"选中dma、mcu_mstr、APB Group(uart+timer)、ahb_sub、mcu_slv,然后点击”Group“,让其通过1个Bus Matrix互联。

在这里插入图片描述

按"Ctrl"选中cpu、flash、sramc,然后点击”Group“,让其通过1个Bus Matrix互联。

在这里插入图片描述

删除所有生成好的组件,ASIB和AMIB之间以”黄色虚线“连接。此时只是一种虚拟的映射关系,无实际的连接关系。

在这里插入图片描述

Read more

Java Web 开发环境搭建:IDEA+Tomcat 安装与部署超详细教程

Java Web 开发环境搭建:IDEA+Tomcat 安装与部署超详细教程

在 Java Web 开发中,IDEA 作为主流的集成开发工具,搭配 Tomcat 轻量级 Web 服务器是入门首选。本文将基于 Java Web 基础开发要求,从 JDK 环境配置、Tomcat 安装配置、IDEA 安装、Web 项目创建,到 Tomcat 在 IDEA 中的部署运行,进行一步一图式详细讲解,零基础也能轻松上手。 一、前置准备:JDK 环境配置 Java Web 开发的核心基础是 JDK,Tomcat 和 IDEA 的运行都依赖 JDK 环境,需先完成 JDK 的安装与环境变量配置。 1. 下载与安装

前端模块化开发:从面条代码到结构化代码的蜕变

前端模块化开发:从面条代码到结构化代码的蜕变 毒舌时刻 模块化开发?不就是把代码分成几个文件嘛,有什么大不了的?我见过很多所谓的模块化代码,其实就是把一堆函数随便塞进不同的文件里,根本没有任何结构可言。 你以为把代码分成模块就万事大吉了?别天真了!如果你的模块设计不合理,反而会让代码变得更加混乱。比如那些互相依赖的模块,就像一团乱麻,让你根本理不清头绪。 为什么你需要这个 1. 代码可维护性:模块化代码结构清晰,易于理解和维护,当需要修改某个功能时,只需要修改对应的模块即可。 2. 代码复用:模块化可以让你在不同的项目中复用相同的代码,减少重复开发的工作量。 3. 团队协作:模块化可以让不同的开发者负责不同的模块,减少代码冲突和沟通成本。 4. 性能优化:模块化可以帮助你实现代码分割,减少初始加载时间,提高应用的性能。 反面教材 // 这是一个典型的面条代码 let users = []; let products = []; function fetchUsers() { fetch('https://api.example.com/

Seedance 2.0 完整操作手册:AI 视频创作进入人人都是导演时代

Seedance 2.0 完整操作手册:AI 视频创作进入人人都是导演时代

这两天,字节的AI视频模型Seedance 2.0 彻底出圈了 到处都是 Seedance 2.0 的生成AI作品 有人用它做出了电影级的追逐戏,有人用它复刻了广告大片的运镜,还有人拿它做古装穿越剧和各种武打动作片,画面精致到让人分不清是AI生成的还是真人拍的。 不夸张地说,Seedance 2.0 这波更新,直接把AI视频生成的门槛踩到了地板上。 为什么这么火?因为它解决了一个所有创作者都头疼的问题:以前AI视频只能"生成",现在终于能"控制"了。 用图片、视频、音频、文字自由组合,人人都能当导演   我们都知道,以前做 AI 视频,你只能打字描述想要什么画面,或者最多放一张图当起始帧。说实话,这种方式表达能力太有限了——你脑子里想的是电影级别的镜头感,打出来的却只是干巴巴的一段话。 现在不一样了。 它不再只是一个"文生视频&

video-subtitle-remover(VSR)-- 开源AI去字幕方案深度解析

video-subtitle-remover(VSR)-- 开源AI去字幕方案深度解析

一、从“硬字幕”说起:为什么我们需要 VSR? 在视频剪辑、二创和影视加工场景里,“硬字幕”(内嵌到画面里的字幕)一直是特别棘手的问题: * 你无法通过关闭字幕轨道来清除; * 直接裁剪会破坏画面构图; * 简单模糊/马赛克又会在画面上留下明显的“补丁”。 传统做法要么牺牲画质,要么牺牲效率。而开源项目 video-subtitle-remover(VSR),则直接把问题拉到了“AI 视频修复”的维度:用深度学习模型自动检测字幕区域,再通过图像修复算法把文字“擦掉”,并用背景自然填补。 项目核心信息(来自 README): * 功能定位:- 去除视频 / 图片中的硬字幕、文本水印 * 无损分辨率输出 * 支持自定义字幕区域,或全视频自动去除所有文本 * 技术特点:- 完全本地运行,无需调用第三方 API * 支持多种 GPU 加速(CUDA / DirectML