赛灵思
直播中

黄欢

7年用户 132经验值
私信 关注
[问答]

Virtex 5上的时钟信号未找到错误怎么回事

大家好,
我是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)

杨玲

2020-6-11 11:34:17
您需要检查所有综合消息和警告。
通常这发生在
您没有连接到FPGA引脚。
任何没有输出的设计都不会产生任何硬件
不管你设计了多少逻辑。
确保连接时钟和复位信号
在设计的顶层。
如果您的代码由于某种原因可能会发生其他问题
不可综合,虽然这通常导致错误而不仅仅是警告。
如果您仍然不明白发生了什么,可以将综合报告作为附件发布
(project_name.syr文件)。
- Gabor
- Gabor
举报

赖嘉宁

2020-6-11 11:46:35
首先,谢谢你的回复!
请找到附件..我在追踪clk时尝试了很多,但我对此没有任何想法..请帮助我..提前谢谢!!
report.txt 2398 KB
举报

李森

2020-6-11 11:53:36
你是否在发布之前阅读了报告?如果你有,你应该注意到你的设计基本上已经解决了逻辑零。
------您是否尝试在Google中输入问题?
如果没有,你应该在发布之前。太多结果?
尝试添加网站:www.xilinx.com
举报

张晓宁

2020-6-11 12:13:13
如果合成器确定所有时钟寄存器都可以用逻辑替换,因为寄存器值永远不会改变,那么合成器将删除时钟网络,因为它不需要。
您需要浏览综合信息消息,告诉您寄存器具有常量值。
- 鲍勃埃尔金德
签名:新手的自述文件在这里:http://forums.xilinx.com/t5/New-Users-Forum/README-first-Help-for-new-users/td-p/219369总结:1。
阅读手册或用户指南。
你读过手册了吗?
你能找到手册吗?2。
搜索论坛(并搜索网页)以寻找类似的主题。
不要在多个论坛上发布相同的问题。
不要在别人的主题上发布新主题或问题,开始新的主题!5。
学生:复制代码与学习设计不同.6“它不起作用”不是一个可以回答的问题。
提供有用的详细信息(请与网页,数据表链接).7。
您的代码中的评论不需要支付额外费用。
我没有支付论坛帖子的费用。
如果我写一篇好文章,那么我一无所获。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分