集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 2579|回复: 7

一段关于流水代码的问题

[复制链接]
usd 发表于 2010-6-27 23:57:50 | 显示全部楼层 |阅读模式
本帖最后由 fpgaw 于 2010-7-3 07:13 编辑

流水实现的八位加法器代码,怎么仿真的时候出来的数据不正确?
各位大侠看看是出了什么问题
module pipeline(cout,sum,ina,inb,cin,clk);
output[7:0] sum;
output cout;
input[7:0] ina,inb;
input cin,clk;
reg[7:0] tempa,tempb,sum;
reg tempci,firstco,secondco,thirdco,cout;
reg[1:0] firsts,thirda,thirdb;
reg[3:0] seconda,secondb,seconds;
reg[5:0] firsta,firstb,thirds;

always @(posedge clk)
begin
tempa=ina;  tempb=inb;  tempci=cin;
end

always @(posedge clk)
begin
{firstco,firsts}=tempa[1:0]+tempb[1:0]+tempci;
firsta=tempa[7:2];
firstb=tempb[7:2];
end

always @(posedge clk)
begin
{secondco,seconds}={firsta[1:0]+firstb[1:0]+firstco,firsts};
seconda=firsta[5:2];
secondb=firstb[5:2];
end

always @(posedge clk)
begin
{thirdco,thirds}={seconda[1:0]+secondb[1:0]+secondco,seconds};
thirda=seconda[3:2];
thirdb=secondb[3:2];
end

always @(posedge clk)
begin
{cout,sum}={thirda[1:0]+thirdb[1:0]+thirdco,thirds};
end
endmodule
interig 发表于 2010-6-28 00:40:58 | 显示全部楼层
郁闷 怎么下不了啊
tim 发表于 2010-6-28 01:32:50 | 显示全部楼层
好像要用非阻赛赋值吧!
VVIC 发表于 2010-6-28 02:52:20 | 显示全部楼层
设计中增加复位
HANG 发表于 2010-6-28 04:23:28 | 显示全部楼层
你想要实现的功能是什么?你好象没有加上复位吧!
CTT 发表于 2010-6-28 05:56:01 | 显示全部楼层
hehe,好像有一个大牛写过关于加法器的技术文档 。
CCIE 发表于 2010-6-28 07:51:46 | 显示全部楼层
不懂 是verilog?
CHAN 发表于 2010-6-28 09:12:42 | 显示全部楼层
楼主,你用非阻赛仿真试试,感觉你用阻赛语句好像有问题!
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

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

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2024-12-24 10:50 , Processed in 0.088470 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表