首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为<<操作员综合的硬件是什么

为<<操作员综合的硬件是什么
EN

Stack Overflow用户
提问于 2020-07-22 14:21:34
回答 3查看 704关注 0票数 0

我最近开始研究HDL语言,同时通过右/左移位运算符,我在学校学习的是它们是连续的D FlipFlops,逐位移位数据以产生输出。

我假设在用HDL语言综合它们时也会做同样的事情,但我在verilog综合中看不到同样的硬件,它看起来就像RTL_LSHIFT中的简单连接操作。

有人能给我解释一下这个RTL_LSHIFT里面的硬件是怎么回事吗?如果是FF,那么为什么BLock没有时钟输入。

我知道所有的算术和逻辑移位的功能,我需要硬件综合在HDL中。

代码:

代码语言:javascript
运行
复制
module doubt(
    input[5:0] a,
    input [5:0] b,
    input clk,
    output reg [9:0] c,
    output reg [9:0] d
    );
    reg s1,s2;
    always @ ( posedge clk)
   begin 
   
   c <= (a<<1);
   d<= (b<<4);
    end  
endmodule

EN

回答 3

Stack Overflow用户

发布于 2020-07-22 18:02:51

在硬件方面,左/右移位器是一组简单的多路复用器,看看桶形移位器的设计。此外,这取决于EDA合成器如何推断和可能的优化。

票数 0
EN

Stack Overflow用户

发布于 2020-07-27 17:18:47

真正的触发器驻留在RTL_REG中。RTL_LSHIFT重新排列输入向量的位顺序。我不熟悉您用来生成这个示意图的工具(我想可能来自Xilinx ),所以我也不知道I0/I1/I2是怎么回事。此外,如果您的问题仅限于固定的移位位置,如左移恰好2位,我们希望使用这种串联形式out <= {in[3:0], 2'b0}; (假设outin都是6位信号)。这使得我们的代码更精确,并减少了潜在的bug。很抱歉,由于时间和我目前正在使用的计算机,我没有合适的工具来绘制原理图。

票数 0
EN

Stack Overflow用户

发布于 2020-08-08 03:46:59

对于恒定的移位,使用导线。您只需将每个输入位连接到正确的输出位置即可。不需要其他部件。

在您的示例中,a连接到c_reg1的d输入,a1连接到c_reg2的d输入,依此类推。未分配的位连接到0。由于c7:9始终为0,因此您的工具已将输出直接连接到0,而无需触发器。

在FPGA中,导线本身是由下载到FPGA的比特流编程的多路复用器,但从概念上讲,固定移位仍然是导线。

在其他实现技术和/或优化器中,我确信c也将连接到0。

如果移位不是恒定的,你需要m4j0rt0m描述的桶形移位器。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63028094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档