FPGA

来源:互联网 发布:apache开启rewrite 编辑:程序博客网 时间:2024/05/08 18:59

说实话,我们在FPGA上干什么?按照别人的规则做堆叠。


请看下面三个案例,你是否遇到:

module regwrite(
output reg [3:0] rout,
input clk, in,
input [3:0] ctrl);
always @(posedge clk) begin
    case(ctrl[3:0])
    4'b1000:    rout[3] <= in;
    4'b0100:    rout[2] <= in;
    4'b0010:    rout[1] <= in;
    4'b0001:    rout[0] <= in;
    default:;
    endcase
end
endmodule


综合后的图:



2:


module regwrite(
output reg [3:0] rout,
input clk, in,
input [3:0] ctrl);
always @(posedge clk) begin
    if(ctrl[0]) rout[0] <= in;
    if(ctrl[1]) rout[1] <= in;
    if(ctrl[2]) rout[2] <= in;
    if(ctrl[3]) rout[3] <= in;
end
endmodule


综合后图片:





3.


module regwrite(
output reg [3:0] rout,
input clk, in,
input [3:0] ctrl);


always @(posedge clk)
    if(ctrl[0]) rout[0] <= in;
    else if(ctrl[1]) rout[1] <= in;
    else if(ctrl[2]) rout[2] <= in;
    else if(ctrl[3]) rout[3] <= in;
    
endmodule


综合后结果:





上述三种结果,希望曾经认为的想法做个纠正。



0 0