网站首页
IC库存
IC展台
电子资讯
技术资料
PDF文档
我的博客
IC72论坛
ic72 logo
资料首页最新产品 技术参数 电路图 设计应用 解决方案 代理商查询 IC替换 IC厂商 电子辞典
关键字: 技术文章 PDF资料 IC价格 电路图 代理商查询 IC替换 IC厂商 电子辞典

实现拆分大组合逻辑的方法


用加法器做例子,设输入ABCD输出OUT 上半部分就是: out = A+B+C+D;
下半部分就是:
always @(posedge clk)
begin
sumreg1 = sum1;
sumreg2 = sum2;
sumreg3 = sum3; end
assign sum1 = A+B;
assign sum2 = C+D;
assign sum3 = sumrge1+sumreg2;
assign OUT = sumreg3;
通常建议使用下半部分的算法,如果可以使用流水线。


通常是这样的,没有例子看起来是不好理解,但是一有具体的例子就非常清楚了。我也来学着给个计数器的例子计数255,如果用一个寄存器来计那么需要开的深度为8的,如果拆分为两个那么只需容量为4的两个寄存器,所需的逻辑较小,不知道对不对。
reg[3:0]ad1;
reg[3:0]ad2;
always @(posedge clk)
if(!rest)
begin
out=0;
ad1=0;
ad2=0;
end
else
if(ad1==15)
begin
ad2=ad2+1;
ad1=0;
end
else
if (ad2==15)
begin out=1;
end
else
ad1=ad1+1;
ad1加满后去触发ad2加。


always @(posedge clk)
if (reset)
counter0 = 0;
else
counter0 = counter0 + 1;
always @(posedge clk)
begin
counterreg0 = counter0;
if (counterreg0 == 4'b1111)
outreg0 = 1;
else
outreg0 = 0;
end
assign counter1 = counterreg1 + outreg0;
always @(posedge clk)
begin
counterreg1 = counter1;
if (counterreg1 == 4'b1111)
out = 1;
else
out = 0;
end


lflhust 写的程序没有达到逻辑拆分的目的, 原因很简单, 那个程序综合后生成的电路的流水线深度还是1。 zf0579那个程序的流水线深度才是2,达到了拆分的目的。 作逻辑的出发点不是写HDL代码,而是在写代码前脑子里面要有 你需要实现的逻辑的电路结构。

作逻辑的出发点不是写HDL代码,而是在写代码前脑子里面要有。你需要实现的逻辑的电路结构。

热门搜索:LCR2400 2839570 BT151S-800R118 BT05-F250H-03 2320319 IS-1000 LC1200 2986122 PS-615-HG 02B5000JF SBB830 01C5001JF BSV17-16 B30-8000-PCB 8300SB1 PS4816 PDU1220 PS-415-HGULTRA TLM812SA SS480806 LC1800 ADC128S102CIMTX SS7415-15 DRV8313PWPR PS361220
COPYRIGHT:(1998-2010) IC72 达普IC芯片交易网
客户服务:service@IC72.com 库存上载:IC72@IC72.com
(北京)联系方式: 在线QQ咨询:点击这里给我发消息 联系电话:010-82614113 传真:010-82614123
京ICP备06008810号-21 京公网安备 11010802032910 号 企业资质