问题标签 [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.
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>
vhdl - 如何定义记录类型的默认值
是否可以为记录类型或通常任何用户定义的类型定义默认值?
类似(伪VHDL)的东西:
或者
编辑:将 glarp 从类型更改为子类型定义。
vhdl - 设置初始值时对记录类型信号的部分分配
是否可以在初始化时对记录类型进行部分分配?
就像是:
如果是正常的信号分配,我可以这样做:
然而,在初始化信号或常数时这是不可能的。在我看来,在设置初始值时必须分配所有记录成员,或者根本不分配。
使用函数可能有一种解决方法,但有没有更简单/更好/原生的方法?
vlsi - 如何在 APB 协议中从从机生成 PREADY 信号?
我正在设计 AMBA APB 从站。我的设计中 AMBA APB 的所有信号都是从主机端正确生成的,但是在什么情况下我的从机应该生成 PREADY 信号?PENABLE、PSEL、PADDR 和 PDATA 可从主机获得。我的从机应该什么时候产生 PREADY 信号?在设计从机以使 PREADY 高时,我应该考虑哪些具体情况?我的数据是否应该仅在 PREADY 为高时才传输?
verilog - 如何使用 genvar 变量访问输入信号?
我有一个带有 30 个向量输入的模块。我需要在 for 循环分配方面的帮助。
在 Verilog 中是否有一种简单的方法可以做到这一点。我知道我可以通过创建输入的二维向量在 System verilog 中做到这一点。但是有没有办法在 Verilog 中做到这一点?
verilog - SystemVerilog:使用写指针写入数组
想象一下,我有一个特定的字节缓冲区和这个缓冲区的写指针,例如:
wherewptr
指向缓冲区中我要存储传入数据的下一个位置。
现在,假设我的输入数据也是一个字节块,例如:
与M
< N
。
如果我编写如下代码:
一切正常,除了 when 的明显例外wptr > N-M
,这在我的应用程序中永远不会发生。
但是,这似乎不是解决问题的一种非常干净的方法,并且会导致使用 linting 工具发出警告。扩展缓冲区似乎也不是一个好方法。
实现这样的事情的干净和正确的方法是什么?
谢谢。
verification - 在 ASIC 仿真环境中使用固件
我们正在设计一个基于 ARM CPU 和多个其他硬件引擎的 ASIC。这些引擎通过 CPU AHB 端口可访问的内存映射寄存器进行控制。目前,我们有用 C 语言编写的简单测试,由 CPU RTL 编译、加载和执行。一切正常,但正如预期的那样,CPU RTL 大大减慢了仿真速度,这使得运行更复杂的 C 代码来更广泛地测试设计的其余部分变得困难。由于我们没有尝试验证 CPU RTL,我想知道是否可以采用不同的方法。
我们已经用 C 语言编写了大部分固件,用于 FPGA 原型设计。固件使用宏 MemRead 和 MemWrite 访问内存映射寄存器,它们可以很容易地被函数调用或类似的东西代替。方法是:
- 从设计中移除 CPU RTL
- 创建一个由 MemRead 和 MemWrite C 调用调用的 shim,这些调用将生成对设计 AHB 从端口的 AHB 请求,因为 CPU 移除而断开连接
- 使用模拟器(Cadence irun,在我们的例子中)编译基于 C 的固件、RTL 设计(减去 CPU)和测试平台
- 运行模拟
这甚至可能吗?有没有人尝试过这种方法?关于如何在 C 代码固件和 Verilog 测试平台和设计之间提出“垫片”的任何建议?
谢谢,
马库斯。
arm - 现实世界的 DRAM 只写应用程序
我很想知道是否有任何现实世界的应用程序包括以下场景:
从所有(三个或更多)A53 内核(或任何其他 Arm 内核)同时对 DRAM 进行兆字节的连续只写操作——在整个应用程序中作为内核的唯一操作。
我问的原因是,我在设计上述操作异常的芯片时遇到了一个特定的场景,所以想探索如果它是有效的如何处理这个特定的场景。
我只能想到 DRAM 初始化。
system-verilog - SystemVerilog 中队列的最大大小是多少?
我正在编写代码来检查时钟的脉冲宽度。我将脉冲的宽度存储在队列中。由于模拟将运行 2 秒,因此队列的大小将变得巨大。我想知道队列的最大大小是多少?
system-verilog - Systemverilog 函数综合——自动 vs 静态
在组合逻辑综合(非仿真)的上下文中:何时应将函数声明为自动?什么时候应该将函数声明为 static ?