vlsi相关内容

verilog 中的整数输入端口类似于 vhdl?

我是 verilog 的新手.我使用 vhdl 中的整数输入和输出构建了我的代码.现在我想在 verilog 中构造相同的代码.但是我开始知道 verilog 中的输入端口不能是整数类型.可以做什么.我更喜欢可综合的答案. vhdl 代码: LIBRARY ieee;使用 ieee.All;使用 IEEE.std_logic_1164.all;使用 IEEE.std_logic_unsig ..
发布时间:2021-09-17 19:27:52 其他开发

Verilog:如何取绝对值

在 verilog 中,我有一个二进制值数组.如何取减去值的绝对值? Verilog 代码: module aaa(clk);输入时钟;reg [7:0] a [1:9];reg [7:0] s [1:9];总是@(posedge clk)开始s[1] = a[1] - a[2];s[2] = a[2] - a[3];s[3] = a[1] + a[3];结尾结束模块 我希望我的 s[1 ..
发布时间:2021-09-17 19:27:37 其他开发

如何在 Verilog 中对数字进行符号扩展

我正在 Verilog 中为我正在为计算机体系结构创建的处理器开发一个简单的符号扩展器. 这是我到目前为止所得到的:[编辑:稍微更改了选择语句] `timescale 1ns/1ps模块 SignExtender( CLK, 扩展, 扩展);输入[7:0]扩展;输入时钟;输出[15:0]扩展;reg[15:0] 扩展;线[7:0]扩展;总是开始而(时钟== 1)扩展[7:0] = 扩展[7 ..
发布时间:2021-09-17 19:25:47 其他开发

$display vs $strobe vs $monitor in verilog?

verilog 中的 $display vs $strobe vs $monitor 有什么区别?当在事件队列中时,每个都适用,语句如何交互?任何声明都可以抑制另一个声明吗? 解决方案 我会很好地总结LRM(语言参考手册),但您应该阅读它.一切都在IEEE Std 1800-2012 §21.2 显示系统任务(技术上是SystemVerilog,但这些功能是相同的.) $displa ..
发布时间:2021-09-17 19:23:59 其他开发

如何将固定分数应用于整数

我想乘以带有修改分数的整数,如下所示 (乘以幂级数负项求和) 我已经找到了将分数转换为 CSD 形式的方法.但我想知道如何申请乘以整数. 例如,我得到了这个 0.46194 = 2^-1 - 2^-5 - 2^-7 + 2^-10. 然后我可以像这样作为 verilog rtl 表达式: y=(x>>1) - (x>>5) - (x>>7) + (x>>10); ..
发布时间:2021-09-17 19:23:39 其他开发

tcl 文本处理 - 根据用户定义的值重新排列行和列中的值

我是 tcl 的新手,想在一个简单案例的文本处理中使用它.以下格式是用于芯片设计的 Liberty(.lib 文件).对此我真的很感激. 这是我的文件的片段(仅对“值"进行文本处理) 计时(){related_pin : "clk";时间类型:setup_rising;上升约束(约束模板_5X5){index_1 ("0.01, 0.05, 0.12, 0.2, 0.4");index_2 ..
发布时间:2021-09-04 19:41:07 其他开发

系统 Verilog always_latch 与 always_ff

刚开始学习 System Verilog.我对语句 always_ff 和 always_latch 的使用感到困惑.前者将用作: always_ff @ (posedge clk)开始a 而后者: always_latch开始a 第一个仅由时钟的上升沿激活,并与非阻塞分配相结合产生 FF. always_latch 显然被认为代表了一个锁存器,但是为什么要使用非阻塞赋值呢?使用 ..
发布时间:2021-09-04 18:50:19 其他开发

如何在 RTL 中使用时钟门控?

我正在对我的设计中的一些锁存器和逻辑进行时钟门控.我在合成和位置方面没有太多经验.路线.在 RTL 中实现时钟门控的正确方法是什么? 示例 1: always_comb 开始gated_clk = clk &闩锁更新_en;结尾always_latch 开始if(gated_clk) 开始闩锁数据 示例 2:我在研究 RTL 时钟门控的良好实践时偶然发现了一个 RTL 示例.该示例实现了 ..
发布时间:2021-09-04 18:47:24 其他开发

用负项乘以幂级数求和

如何在Verilog中计算浮点被乘数?到目前为止,我通常使用shift> 1024再次获得分数. 例如0.3545 = 2 ^ -2 + 2 ^ -4 + ... 我对这样的另一种方式有疑问.我不知道减号(-)的来源: 0.46194 = 2 ^ -1-2 ^ -5-2 ^ -7 + 2 ^ -10. 我刚从某 ..
发布时间:2020-11-10 19:25:56 其他开发

在Verilog设计中产生时钟故障

我正在使用Verilog设计芯片。我有一个3位计数器。我希望当计数器处于第8个循环时,应该出现时钟故障,然后才能正常工作。在Verilog设计中产生时钟毛刺的可能方法是什么? 解决方案 在时钟信号上注入毛刺的一种方法是使用测试台上的 force 和 release : 模块tb; reg clk; reg [2:0] cnt; reg重置; 总是开始 #5 cl ..
发布时间:2020-10-02 21:01:12 其他开发

如果我使用了异步复位该怎么办,我是否必须将其设置为同步复位?

在制造IC时(我指的是硬件中的物理设计). 据我所知,输入复位始终是异步的.我想知道如果我使用异步复位怎么办,我是否必须将其设置为同步?或我们可以只使用异步重置吗? 解决方案 实际上,如果您的触发器具有时钟并且异步重置,则可以随时开始异步重置,但是您应该同步结束它.原因很简单:想象一下真正的异步.复位与时钟沿同时结束.您可以在这里轻松获得亚稳态,或者,例如,一半的触发器将接受时钟沿,而另一 ..
发布时间:2020-07-18 18:34:03 其他开发