在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
EETOP诚邀模拟IC相关培训讲师 创芯人才网--重磅上线啦!
查看: 2454|回复: 1

[原创] verilog代码改写

[复制链接]
发表于 2014-9-9 19:39:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x

求助!!!把下面的verilog代码改写成门级的代码,我不会改写。求大神帮助!我在做Astro,可是不识别always块和assign。求帮助!求帮助!特别急!师哥师姐师父们,帮我看看。

moduleadder_pipeline(rst_n,clk,a,b,cin,sum);   

parameter     DATA_SIZE = 8;

input rst_n;

input clk;

input [DATA_SIZE -1 : 0] a;

input [DATA_SIZE -1 : 0] b;   

input cin;

output [DATA_SIZE: 0] sum;

reg [DATA_SIZE - 1: 0] a_r;

reg [DATA_SIZE - 1: 0] b_r;

reg cin_r;

reg [DATA_SIZE :0] sum;

reg [1:0]stage0_sum;

reg stage0_cout;

reg [DATA_SIZE - 1: 0] stage0_a_r;

reg [DATA_SIZE - 1: 0] stage0_b_r;

reg [3:0]stage1_sum;

reg stage1_cout;

reg [DATA_SIZE - 1: 0] stage1_a_r;

reg [DATA_SIZE - 1: 0] stage1_b_r;

reg [5:0]stage2_sum;

reg stage2_cout;

reg [DATA_SIZE - 1: 0] stage2_a_r;

reg [DATA_SIZE - 1: 0] stage2_b_r;

reg [7:0]stage3_sum;

reg stage3_cout;

always@(posedgeclk)

     if(!rst_n)

         begin

             a_r <= 8'd0;

             b_r <= 8'd0;

             cin_r <= 1'b0;

         end

     else

         begin

             a_r <= a;

             b_r <= b;

             cin_r <= cin;

         end

always@(posedgeclk)

     if(!rst_n)

         begin

             {stage0_cout,stage0_sum} <=3'd0;

             stage0_a_r <= 8'd0;

             stage0_b_r <= 8'd0;        

         end

     else

         begin

              {stage0_cout,stage0_sum} <={1'b0,a_r[1:0]} + {1'b0,b_r[1:0]} + cin_r;               

             stage0_a_r <= a_r;

            stage0_b_r <= b_r;        

         end

always@(posedge clk)

     if(!rst_n)

         begin

             {stage1_cout,stage1_sum} <=5'd0;

             stage1_a_r <= 8'd0;

             stage1_b_r <= 8'd0;   

         end

     else

         begin

             {stage1_cout,stage1_sum} <= {{1'b0,stage0_a_r[3:2]} + {1'b0,stage0_b_r[3:2]} + stage0_cout,stage0_sum };

             stage1_a_r <= stage0_a_r;

             stage1_b_r <= stage0_b_r;

         end        

always@(posedge clk)

     if(!rst_n)

         begin

             {stage2_cout,stage2_sum} <=7'd0;

             stage2_a_r <= 8'd0;

             stage2_b_r <= 8'd0;   

         end

     else

         begin

             {stage2_cout,stage2_sum} <= {{1'b0,stage1_a_r[5:4]} + {1'b0,stage1_b_r[5:4]} + stage1_cout,stage1_sum};            

             stage2_a_r <= stage1_a_r;

             stage2_b_r <= stage1_b_r;

         end        

always@(posedge clk)

     if(!rst_n)

         begin

             {stage3_cout,stage3_sum} <=9'd0;

         end

     else

         begin

             {stage3_cout,stage3_sum} <= {{stage2_a_r[7],stage2_a_r[7:6]} + {stage2_b_r[7],stage2_b_r[7:6]} +stage2_cout,stage2_sum };   

         end

  always@(posedge clk)

     if(!rst_n)

         begin

             sum <= 9'd0;

         end

     else

         begin

             sum <={stage3_cout,stage3_sum};        

         end

         

endmodule

发表于 2014-9-12 23:21:36 | 显示全部楼层
回复 1# 我晓得

你拿综合器综合一下,生成门级结构,再又门级结构来描述就行了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条


小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-29 09:07 , Processed in 0.015051 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表