首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >级联向量在合成中被截断

级联向量在合成中被截断
EN

Stack Overflow用户
提问于 2015-07-16 19:29:40
回答 1查看 494关注 0票数 1

在尝试将32位浮点矢量连接成线性函数移位寄存器时,所有这些都适合于行为模拟。然而,在后合成中,"random_float“网被截断为31位。似乎“标志”被忽视了。有什么想法吗?

代码语言:javascript
复制
logic       [7:0]   exponent_seed      =   8'b01100101;
logic       [22:0]  mantissa_seed      =   23'b01001011101011110010100;
logic       [31:0]  random_float       =   32'b00000000000000000000000000000000;
logic       [7:0]   exponent           =   exponent_seed;
logic       [22:0]  mantissa           =   mantissa_seed;
logic               sign               =   1'b0;  

wire                exponent_feedback  =   exponent[7] ^ exponent[5] ^ exponent[4] ^ exponent[3];

always @ (exponent or mantissa or sign)
    begin
        random_float <= {sign, exponent, mantissa};
    end

 always @ (posedge clk or posedge reset)
    begin
        if (reset)
            begin
                exponent        <= exponent_seed;
                mantissa        <= mantissa_seed;
            end
         else
            begin
                //use concatenation to shift and feed the vector.
                exponent <= {exponent[6:0], exponent_feedback};
                mantissa <= {mantissa[21:0], mantissa_feedback};
            end
    end        

PS我只包括了我认为是相关的代码。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-16 22:59:44

对于后代而言,以下内容阻止合成优化常量:

代码语言:javascript
复制
(*KEEP = "TRUE"*) logic       [31:0]  random_float       =   32'b00000000000000000000000000000000;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31462911

复制
相关文章

相似问题

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