[资料分享] 寄存器放入IOB设置

樱雅月   2010-2-22 13:42 楼主
举例module代码:
module design_top(clk, A, B, C, D, E,rst_n);
input clk, A, B, rst_n;
output reg C, D, E;
reg     temp_a          ;
reg     temp_b          ;

always @(posedge clk or negedge rst_n)
begin
    if (rst_n == 1'b0)  begin
        temp_a <= #1 1'b0;
    end
    else begin
        temp_a <= #1 A;
    end
end
always @(posedge clk or negedge rst_n)
begin
    if (rst_n == 1'b0)  begin
        temp_b <= #1 1'b0;
    end
    else begin
        temp_b <= #1 B;
    end
end
always @(posedge clk or negedge rst_n)
begin
    if (rst_n == 1'b0)  begin
        C <= #1 1'b0;
    end
    else    begin
        C <= #1 temp_a&temp_b;
    end
end
always @(posedge clk or negedge rst_n)
begin
    if (rst_n == 1'b0)  begin
        D <= #1 1'b1;
    end
    else    begin
        D <= #1 temp_a|temp_b;
    end
end
always @(posedge clk or negedge rst_n)
begin
    if (rst_n == 1'b0)  begin
        E <= #1 1'b1;
    end
    else    begin
        E <= #1 temp_a^temp_b;
    end
end
endmodule


我们要实现将输入输出register全部放入IOB当中:
约束如下:
INST "temp_a" IOB = TRUE;  输入
INST "temp_b" IOB = TRUE;  输入
INST "C" IOB = TRUE;  输出
INST "D" IOB = TRUE;  输出
INST "E" IOB = TRUE;  输出

如果不想放入IOB中,很简单就是 IOB=FALSE。

注意这些关键字都是要大写,建议对每个输入和输出的寄存器都要进行IOB register的约束。

一般情况如果输入信号进入FPGA后直接是组合逻辑,或者输出信号由组合逻辑产生,那么不允许IOB = TRUE; 

如果需要IOB = TRUE;建议修改设计代码。 

当然具体问题要具体分析,这里不一一列举。

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复