完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
大家好,
我是Verilog编程的新手,目前正在Xilinx Virtex 5上合成一个128位Ghash功能模块。它在modelsim上完美模拟,但在综合时,语法检查还可以,但它不会在合成后显示时钟时序细节或资源消耗。 它说没有找到时钟信号,LUT的资源消耗表示0使用。 请帮忙。 这是我的代码。 //带有修改矩阵乘法的128位galois域乘法 module new_gf(clk,rst,din1,din2,dout); 输入clk; 输入rst; 输入[127:0] DIN1,DIN2; 输出reg [127:0] dout; 参数q = 128'h E1_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00; REG [127:0] L [0:127]; REG [127:0] U [0:127]; REG [127:0] Q [0:127]; REG [127:0]的Qt [0:127]; REG [127:0] d; reg [127:0] e; reg [127:0] Qte; reg [128:0] c; reg m1,m2,m3; 整数l,u,q1,q2,q3; 整数dv1,dv2,dv3; 整数ev1,ev2,ev3; 整数qt1,qt2,qt3,qt4; 整数qte1,qte2,qte3; 整数ci; 总是@(DIN1) 开始 //形成L矩阵 L [127] [127:0] = DIN1 [127:0]; 为(L = 126; L> = 0; L = L-1) L [1] [127:0] = L [L + 1] [127:0]> 1'b1的; 对于(U = 1; U> 1'b1的; 结束 永远@(posedge clk) 开始 如果(RST) 开始 d [127:0] = 0; //声明为d = lb; DV1 = 0; DV2 = 0; DV3 = 127; E [127:0] = 0; //申明e = bu; EV1 = 0; EV2 = 0; EV3 = 127; QT1 = 0; // q转置变量的声明 QT2 = 127; QT3 = 0; QT4 = 127; QTE [127:0] = 0; qte1 = 0; qte2 = 0; qte3 = 127; Q3 = 0; M1 = 0; 平方米= 0; 立方米= 0; 结束 其他 开始 //形成Q矩阵 Q1 = 1; Q [0] [127:0] = Q; Q [127] [127:0] = 0; 为(Q1 = 1; Q 1> 1'b1的; if(Q [q1] [0])///检查最后一位是否为高。 如果它很高继续 开始 Q2 = Q1 + 1; Q [Q2] [127:0] = Q [Q1] [127:0] >> 1'b1的; //右移1位 Q [Q2] [127:0] = Q [Q2] [127:0] ^ Q [127:0]; //使用irreducable多项式执行xor运算; Q1 = Q2; 如果(Q [Q1] [0]) 开始 Q3 = Q1 + 1; Q1 = Q3; 结束 其他 Q [Q1] [127:0] = Q [Q1] [127:0]; 结束 其他 开始 Q [Q1] [127:0] = Q [Q1] [127:0]; 结束 结束 //形成Qtranspose矩阵 如果(QT1 = 0) 开始 if(qt2> = 0&& qt3 可能是什么问题呢? //带有修改后的矩阵乘法模块的128位伽罗瓦域乘法new_gf(clk,rst,din1,din2,dout);输入clk;输入rst;输入[127:0] din1,din2;输出reg [127:0] dout; 参数q = 128'h E1_00_00_00_00_00_00_00_00_00_00_00_00_00_00_00; REG [127:0] L [0:127]; REG [127:0] U [0:127]; REG [127:0] Q [0:127]; REG [127:0]的Qt [0:127 ]; reg [127:0] d; reg [127:0] e; reg [127:0] Qte; reg [128:0] c; reg m1,m2,m3;整数l,u,q1,q2, q3;整数dv1,dv2,dv3;整数ev1,ev2,ev3;整数qt1,qt2,qt3,qt4;整数qte1,qte2,qte3;整数ci;始终@(din1)开始//形成L矩阵L [127 ] [127:0] = DIN1 [127:0]; for(l = 126; l> = 0; l = l-1)L [l] [127:0] = L [l + 1] [127:0] //形成U矩阵U [0] [127 :0] = DIN1 >> 1'b1的; for(u = 1; u U [127:0] = U [u-1] [127:0] >> 1'b1;如果(rst)开始d,则始终@(posedge clk)结束[127] :0] = 0; // d = lb的声明; dv1 = 0; dv2 = 0; dv3 = 127; e [127:0] = 0; // e = bu的声明; ev1 = 0; ev2 = 0; ev3 = 127; qt1 = 0; // q转置变量的声明qt2 = 127; qt3 = 0; qt4 = 127; Qte [127:0] = 0; qte1 = 0; qte2 = 0; qte3 = 127; q3 = 0; m1 = 0; m2 = 0; m3 = 0;结束其他开始//形成Q矩阵q1 = 1; Q [0] [127:0] = q; Q [127] [127:0] = 0;对于(q1 = 1; q1开始Q [q1] [127:0] = Q [q1-1] [127:0] >> 1'b1; if(Q [q1] [0])// /检查最后一位为高位。如果为高则继续开始q2 = q1 + 1; Q [q2] [127:0] = Q [q1] [127:0] >> 1'b1; //右移 1比特Q [q2] [127:0] = Q [q2] [127:0] ^ q [127:0]; //用不可约多项式执行xor运算; q1 = q2; if(Q [q1] [ 0])begin q3 = q1 + 1; q1 = q3; end else Q [q1] [127:0] = Q [q1] [127:0]; end else begin Q [q1] [127:0] = Q [q1] [127:0];结束//形成Qtranspose矩阵如果(qt1 = 0)开始if(qt2> = 0& qt3开始Qt [qt1] [qt2] = Q [qt3] [qt4 ]; qt2 = qt2-1; qt3 = qt3 + 1;结束其他开始qt1 = qt1 + 1; qt4 = qt4-1; QT2 = 127; QT3 = 0; 结束//乘以d = l * b; 否则如果(dv1 = 0)开始if(dv2开始m1 =(din2 [dv2]& L [dv2] [dv3])^ m1; dv2 = dv2 + 1;结束其他开始d [dv1] = m1; m1 = 0; dv1 = dv1 + 1; dv3 = dv3-1; dv2 = 0;结束// e = u * b的乘法;否则如果(ev1 = 0)则开始if(ev2开始m2 =(din2 [ev2]& ; U [ev2] [ev3])^ m2; ev2 = ev2 + 1;结束其他开始e [ev1] = m2; m2 = 0; ev1 = ev1 + 1; ev3 = ev3-1; ev2 = 0;结束 否则// qte = qt * e的乘法if if(qte1 = 0)begin if(qte2 begin m3 =(e [qte2]& Q [qte2] [qte3])^ m3; qte2 = qte2 + 1; end else 开始Qte [qte1] = m3; m3 = 0; qte1 = qte1 + 1; qte3 = qte3-1; qte2 = 0; end end else begin c = Qte + d; if(c [127])dout = c ^ 128 'h C0000000000000000000000000001A2E;否则dout = c ^ 128'h 61919000000000000000000000CC1A8A; end end end endendmodule |
|
相关推荐
7个回答
|
|
您需要检查所有综合消息和警告。
通常这发生在 您没有连接到FPGA引脚。 任何没有输出的设计都不会产生任何硬件 不管你设计了多少逻辑。 确保连接时钟和复位信号 在设计的顶层。 如果您的代码由于某种原因可能会发生其他问题 不可综合,虽然这通常导致错误而不仅仅是警告。 如果您仍然不明白发生了什么,可以将综合报告作为附件发布 (project_name.syr文件)。 - Gabor - Gabor |
|
|
|
|
|
|
|
你是否在发布之前阅读了报告?如果你有,你应该注意到你的设计基本上已经解决了逻辑零。
------您是否尝试在Google中输入问题? 如果没有,你应该在发布之前。太多结果? 尝试添加网站:www.xilinx.com |
|
|
|
如果合成器确定所有时钟寄存器都可以用逻辑替换,因为寄存器值永远不会改变,那么合成器将删除时钟网络,因为它不需要。
您需要浏览综合信息消息,告诉您寄存器具有常量值。 - 鲍勃埃尔金德 签名:新手的自述文件在这里:http://forums.xilinx.com/t5/New-Users-Forum/README-first-Help-for-new-users/td-p/219369总结:1。 阅读手册或用户指南。 你读过手册了吗? 你能找到手册吗?2。 搜索论坛(并搜索网页)以寻找类似的主题。 不要在多个论坛上发布相同的问题。 不要在别人的主题上发布新主题或问题,开始新的主题!5。 学生:复制代码与学习设计不同.6“它不起作用”不是一个可以回答的问题。 提供有用的详细信息(请与网页,数据表链接).7。 您的代码中的评论不需要支付额外费用。 我没有支付论坛帖子的费用。 如果我写一篇好文章,那么我一无所获。 |
|
|
|
@
MCGETT 先生,我是verilog编程的新手。 我多次阅读报告,但没有得到它。 对不起。 @ eteam00 谢谢你的想法,我会尝试检查,但我很无语。 我应该从哪里开始? 任何建议? |
|
|
|
我应该从哪里开始?
任何建议? 从这里开始 信息:Xst:2679 - 在电路工作期间,寄存器单元的常数值为0。 寄存器由逻辑替换。 纠正这一项,然后沿着列表工作。 - 鲍勃埃尔金德 签名:新手的自述文件在这里:http://forums.xilinx.com/t5/New-Users-Forum/README-first-Help-for-new-users/td-p/219369总结:1。 阅读手册或用户指南。 你读过手册了吗? 你能找到手册吗?2。 搜索论坛(并搜索网页)以寻找类似的主题。 不要在多个论坛上发布相同的问题。 不要在别人的主题上发布新主题或问题,开始新的主题!5。 学生:复制代码与学习设计不同.6“它不起作用”不是一个可以回答的问题。 提供有用的详细信息(请与网页,数据表链接).7。 您的代码中的评论不需要支付额外费用。 我没有支付论坛帖子的费用。 如果我写一篇好文章,那么我一无所获。 |
|
|
|
jj_alukkas写道:
@ MCGETT 先生,我是verilog编程的新手。 我多次阅读报告,但没有得到它。 对不起。 你不是在Verilog中“编程”。 你在描述硬件。 你真的需要理解这种区别。 ----------------------------是的,我这样做是为了谋生。 |
|
|
|
只有小组成员才能发言,加入小组>>
2415 浏览 7 评论
2821 浏览 4 评论
Spartan 3-AN时钟和VHDL让ISE合成时出现错误该怎么办?
2292 浏览 9 评论
3372 浏览 0 评论
如何在RTL或xilinx spartan fpga的约束文件中插入1.56ns延迟缓冲区?
2458 浏览 15 评论
有输入,但是LVDS_25的FPGA内部接收不到数据,为什么?
1079浏览 1评论
请问vc707的电源线是如何连接的,我这边可能出现了缺失元件的情况导致无法供电
579浏览 1评论
求一块XILINX开发板KC705,VC707,KC105和KCU1500
438浏览 1评论
2000浏览 0评论
723浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 06:30 , Processed in 1.350515 second(s), Total 90, Slave 72 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号