问题标签 [asic]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
562 浏览

verilog - 如何从 TSMC 65nm 标准单元库生成 .db 文件?

我之前一直在用TSMC 180nm Standard Cell Library,下面是它的目录结构:</p>

在此处输入图像描述

在synopsys的目录下,东西是followers:

在此处输入图像描述

文件 slow.db 用于在 Design Compiler 中合成 RTL Verilog。

现在,我得到了一个 TSMC 65nm 标准单元库,其目录结构与 TSMC 180nm 标准单元库相似:

在此处输入图像描述

但是在目录 synopsys 中,没有 db 文件,只有一个 README 文件:

该软件包不包含时序模型。此库的时序模型位于单独的 *.tgz 文件中,其名称以“ft”开头,并且与此 tgz 文件的名称具有相同的进程、库和版本名称。

我的问题是如何在 TSMC 180nm 标准单元库中获得像“slow.db”这样的 db 文件?

谢谢!</p>

0 投票
1 回答
1626 浏览

vhdl - 如何定义记录类型的默认值

是否可以为记录类型或通常任何用户定义的类型定义默认值?

类似(伪VHDL)的东西:

或者

编辑:将 glarp 从类型更改为子类型定义。

0 投票
1 回答
369 浏览

vhdl - 设置初始值时对记录类型信号的部分分配

是否可以在初始化时对记录类型进行部分分配?
就像是:

如果是正常的信号分配,我可以这样做:

然而,在初始化信号或常数时这是不可能的。在我看来,在设置初始值时必须分配所有记录成员,或者根本不分配。
使用函数可能有一种解决方法,但有没有更简单/更好/原生的方法?

0 投票
1 回答
405 浏览

vlsi - 如何在 APB 协议中从从机生成 PREADY 信号?

我正在设计 AMBA APB 从站。我的设计中 AMBA APB 的所有信号都是从主机端正确生成的,但是在什么情况下我的从机应该生成 PREADY 信号?PENABLE、PSEL、PADDR 和 PDATA 可从主机获得。我的从机应该什么时候产生 PREADY 信号?在设计从机以使 PREADY 高时,我应该考虑哪些具体情况?我的数据是否应该仅在 PREADY 为高时才传输?

0 投票
2 回答
338 浏览

verilog - 如何使用 genvar 变量访问输入信号?

我有一个带有 30 个向量输入的模块。我需要在 for 循环分配方面的帮助。

在 Verilog 中是否有一种简单的方法可以做到这一点。我知道我可以通过创建输入的二维向量在 System verilog 中做到这一点。但是有没有办法在 Verilog 中做到这一点?

0 投票
1 回答
489 浏览

verilog - SystemVerilog:使用写指针写入数组

想象一下,我有一个特定的字节缓冲区和这个缓冲区的写指针,例如:

wherewptr指向缓冲区中我要存储传入数据的下一个位置。

现在,假设我的输入数据也是一个字节块,例如:

M< N

如果我编写如下代码:

一切正常,除了 when 的明显例外wptr > N-M,这在我的应用程序中永远不会发生。

但是,这似乎不是解决问题的一种非常干净的方法,并且会导致使用 linting 工具发出警告。扩展缓冲区似乎也不是一个好方法。

实现这样的事情的干净和正确的方法是什么?

谢谢。

0 投票
0 回答
109 浏览

verification - 在 ASIC 仿真环境中使用固件

我们正在设计一个基于 ARM CPU 和多个其他硬件引擎的 ASIC。这些引擎通过 CPU AHB 端口可访问的内存映射寄存器进行控制。目前,我们有用 C 语言编写的简单测试,由 CPU RTL 编译、加载和执行。一切正常,但正如预期的那样,CPU RTL 大大减慢了仿真速度,这使得运行更复杂的 C 代码来更广泛地测试设计的其余部分变得困难。由于我们没有尝试验证 CPU RTL,我想知道是否可以采用不同的方法。

我们已经用 C 语言编写了大部分固件,用于 FPGA 原型设计。固件使用宏 MemRead 和 MemWrite 访问内存映射寄存器,它们可以很容易地被函数调用或类似的东西代替。方法是:

  1. 从设计中移除 CPU RTL
  2. 创建一个由 MemRead 和 MemWrite C 调用调用的 shim,这些调用将生成对设计 AHB 从端口的 AHB 请求,因为 CPU 移除而断开连接
  3. 使用模拟器(Cadence irun,在我们的例子中)编译基于 C 的固件、RTL 设计(减去 CPU)和测试平台
  4. 运行模拟

这甚至可能吗?有没有人尝试过这种方法?关于如何在 C 代码固件和 Verilog 测试平台和设计之间提出“垫片”的任何建议?

谢谢,

马库斯。

0 投票
0 回答
30 浏览

arm - 现实世界的 DRAM 只写应用程序

我很想知道是否有任何现实世界的应用程序包括以下场景:

从所有(三个或更多)A53 内核(或任何其他 Arm 内核)同时对 DRAM 进行兆字节的连续只写操作——在整个应用程序中作为内核的唯一操作。

我问的原因是,我在设计上述操作异常的芯片时遇到了一个特定的场景,所以想探索如果它是有效的如何处理这个特定的场景。

我只能想到 DRAM 初始化。

0 投票
1 回答
456 浏览

system-verilog - SystemVerilog 中队列的最大大小是多少?

我正在编写代码来检查时钟的脉冲宽度。我将脉冲的宽度存储在队列中。由于模拟将运行 2 秒,因此队列的大小将变得巨大。我想知道队列的最大大小是多少?

0 投票
1 回答
318 浏览

system-verilog - Systemverilog 函数综合——自动 vs 静态

在组合逻辑综合(非仿真)的上下文中:何时应将函数声明为自动?什么时候应该将函数声明为 static ?