699

帖子

0

TA的资源

五彩晶圆(中级)

221
 

原帖由 尚水云者 于 2011-3-4 21:36 发表 夏老师,你好我在用quartus ii 9.0做仿真时,为什么功能仿真是完全正确的,而时序仿真就乱了呢?是时钟设置出了问题还是其他原因呢…… 求老师指点……

 

想要使时序仿真正确,必须知道正确的电路构造,只有基于正确电路构造的RTL模块才能转变成为正确的电路结构。也许您的设计中没有认真考虑电路构造问题,把数据流和控制流混合在一起,综合器就胡乱给你生成一个它自己认为正确而实际并不符合您要求的电路,所以时序仿真的功能就出了问题。您应该先降低时钟频率,如果功能恢复正确,则逻辑电路是正确的,只是时钟频率上不去,只要提高时钟频率后,找到关键路径,改写RTL代码,或者改变约束条件,再次综合,看看恢复高频率时钟后,时序仿真是否能正常。总之做时钟频率要求高的设计是很花时间的,必须考虑电路结构的合理性,才能实现器件说明书中标记的时钟频率指标。

此帖出自FPGA/CPLD论坛
 

回复

699

帖子

0

TA的资源

五彩晶圆(中级)

222
 

原帖由 yangxin8196 于 2011-3-5 09:48 发表 当我用DSP+CPLD中的CPLD作为扩展外设的译码器时当片选到该外设时可以从数据总线读到外设发来的数据,但是我发下去的却是我刚刚读上来的数据,而不是我要发下去的数据,已排除硬件问题,和DSP的问题,怀疑是读写控制信 ...

 

也许读上来的数据把你放准备发下去数据的寄存器覆盖了。你应该先把外设发上来的数据收妥后,告诉外设我要准备发,请它准备好后,然后再发。与外设备交换数据时最好要有握手信号,以确保数据的可靠交换。

此帖出自FPGA/CPLD论坛
 
 

回复

699

帖子

0

TA的资源

五彩晶圆(中级)

223
 

夏老师呼吁

请浏览过本专栏的有工作经验的同学,无论是否是我直接带过的学生,帮助一下学弟妹们。我年老力衰,不可能长期坚持回答各种问题,人人出一点力,世界将变得更加美好。
此帖出自FPGA/CPLD论坛
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(初级)

224
 

synplify pro

夏老师,您好,我在Synplify Pro中进行电路综合出现这个问题:

W        CL170        Pruning bit <24> of step3B[25:0] - not in use ...        normal_addsub_25bits.v (114)        data_check.srr (36)        20:16:06 Sat Mar 05        Verilog Compiler

可是在代码中:

wire [EBits-1:0] Ae,Be;

assign Ae=step1A[DataWidth-2:FBits];
assign Be=step1B[DataWidth-2:FBits];

reg [EBits-1:0] Ed;
reg [DataWidth-1:0] step2A;
reg [DataWidth-1:0] step2B;

reg s2;
always@(posedge clk,negedge rst_n)
begin
        if(!rst_n)
        begin
                Ed<={(EBits){1'b0}};
                step2A<={(DataWidth){1'b0}};
                step2B<={(DataWidth){1'b0}};
                s2<=1'b0;
        end
        else
        begin
                Ed<=Ae-Be;
                step2A<=step1A;
                step2B<=step1B;
                if(s1)
                        s2<=1'b1;
                else
                        s2<=1'b0;
        end
end


我明明是用到了step2B的那些位,可是综合的电路并没有锁存17到24位。
(parameter EBits=7;
parameter FBits=17;
parameter DataWidth=EBits+FBits+1;)
此帖出自FPGA/CPLD论坛
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(初级)

225
 

综合:casex问题

您好,夏老师,请问为何在程序中我用casex,但是synplify pro综合的电路没有看到数据选择器呢?
                casex(step4Res[FBits+1:FBits])
                        2'b1x:
                                begin
                                        E3<=step4SE[EBits-1:0]+7'b000_0001;
                                        F3<=step4Res[FBits:1];
                                end
                        2'b01:
                                begin
                                        E3<=step4SE[EBits-1:0];
                                        F3<=step4Res[FBits-1:0];
                                end
                        2'b00:  //shift to get the E3 and F3
                                begin
                                        casex(step4Res[FBits-1:0])  //synthesis parallel_case
                                                17'b1_xxxx_xxxx_xxxx_xxxx:
                                                begin
                                                        E3<=step4SE[EBits-1:0]-7'b000_0001;
                                                        F3<={step4Res[FBits-2:0],1'b0};
                                                end
                                                17'b0_1xxx_xxxx_xxxx_xxxx:
                                                begin
                                                        E3<=step4SE[EBits-1:0]-7'b000_0010;
                                                        F3<={step4Res[FBits-3:0],2'b0};
                                                end
                                                17'b0_01xx_xxxx_xxxx_xxxx:
                                                begin
                                                        E3<=step4SE[EBits-1:0]-7'b000_0011;
                                                        F3<={step4Res[FBits-4:0],3'b0};
                                                end
                                                17'b0_001x_xxxx_xxxx_xxxx:
                                                begin
                                                        E3<=step4SE[EBits-1:0]-7'b000_0100;
                                                        F3<={step4Res[FBits-5:0],4'b0};
                                                end
                                                17'b0_0001_xxxx_xxxx_xxxx:
                                                begin
                                                        E3<=step4SE[EBits-1:0]-7'b000_0101;
                                                        F3<={step4Res[FBits-6:0],5'b0};
                                                end
                                                17'b0_0000_1xxx_xxxx_xxxx:
                                                begin
                                                        E3<=step4SE[EBits-1:0]-7'b000_0110;
                                                        F3<={step4Res[FBits-7:0],6'b0};
                                                end
                                                17'b0_0000_01xx_xxxx_xxxx:
                                                begin
                                                        E3<=step4SE[EBits-1:0]-7'b000_0111;
                                                        F3<={step4Res[FBits-8:0],7'b0};
                                                end
                                                17'b0_0000_001x_xxxx_xxxx:
                                                begin
                                                        E3<=step4SE[EBits-1:0]-7'b000_1000;
                                                        F3<={step4Res[FBits-9:0],8'b0};
                                                end
                                                17'b0_0000_0001_xxxx_xxxx:
                                                begin
                                                        E3<=step4SE[EBits-1:0]-7'b000_1001;
                                                        F3<={step4Res[FBits-10:0],9'b0};
                                                end
                                                17'b0_0000_0000_1xxx_xxxx:
                                                begin
                                                        E3<=step4SE[EBits-1:0]-7'b000_1010;
                                                        F3<={step4Res[FBits-11:0],10'b0};
                                                end
                                                17'b0_0000_0000_01xx_xxxx:
                                                begin
                                                        E3<=step4SE[EBits-1:0]-7'b000_1011;
                                                        F3<={step4Res[FBits-12:0],11'b0};
                                                end
                                                17'b0_0000_0000_001x_xxxx:
                                                begin
                                                        E3<=step4SE[EBits-1:0]-7'b000_1100;
                                                        F3<={step4Res[FBits-13:0],12'b0};
                                                end
                                                17'b0_0000_0000_0001_xxxx:
                                                begin
                                                        E3<=step4SE[EBits-1:0]-7'b000_1101;
                                                        F3<={step4Res[FBits-14:0],13'b0};
                                                end
                                                17'b0_0000_0000_0000_1xxx:
                                                begin
                                                        E3<=step4SE[EBits-1:0]-7'b000_1110;
                                                        F3<={step4Res[FBits-15:0],14'b0};
                                                end
                                                17'b0_0000_0000_0000_01xx:
                                                begin
                                                        E3<=step4SE[EBits-1:0]-7'b000_1111;
                                                        F3<={step4Res[FBits-16:0],15'b0};
                                                end
                                                17'b0_0000_0000_0000_001x:
                                                begin
                                                        E3<=step4SE[EBits-1:0]-7'b001_0000;
                                                        F3<={step4Res[FBits-17:0],16'b0};
                                                end
                                                17'b0_0000_0000_0000_0001:
                                                begin
                                                        E3<=step4SE[EBits-1:0]-7'b001_0001;
                                                        F3<=17'b0;
                                                end
                                                default:
                                                begin
                                                        E3<={(EBits){1'b0}};
                                                        F3<={(FBits){1'b0}};
                                                end
                                        endcase
                                end
             endcase
此帖出自FPGA/CPLD论坛
 
 
 

回复

7228

帖子

192

TA的资源

五彩晶圆(高级)

226
 

回复 223楼 夏宇闻 的帖子

夏老师 注意身体啊 支持您
此帖出自FPGA/CPLD论坛
 
 
 

回复

732

帖子

0

TA的资源

纯净的硅(高级)

227
 
原帖由 evistera 于 2011-3-6 10:33 发表 您好,夏老师,请问为何在程序中我用casex,但是synplify pro综合的电路没有看到数据选择器呢? casex(step4Res[FBits+1:FBits]) 2'b1x: begin E3


俺提个建议:无论什么时候都不要用casex 这种东东,如果只是自己写点程序搞清楚这个命令的用法,没问题,但实际工程中,千万千万不要使用
此帖出自FPGA/CPLD论坛
个人签名学习的乐趣在于分享。
 
 
 

回复

19

帖子

0

TA的资源

一粒金砂(初级)

228
 

回复 220楼 夏宇闻 的帖子

我在160M的时候时序仿真的时候就是正确的,但是200M的时候就不正确了,但是fmax说是222M,怎么连200M都达不到啊?
此帖出自FPGA/CPLD论坛
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(初级)

229
 

这个还有价值吗?

夏老师,您好,请问我在做浮点数的加减运算是,经过综合信息如下:
Requested Frequency:    335.6 MHz
Mapping to part: xc4vlx15sf363-10
Cell usage:
FDC             320 uses
FDP             27 uses
GND             3 uses
MUXCY           3 uses
MUXCY_L         64 uses
MUXF5           6 uses
VCC             4 uses
XORCY           37 uses
LUT1            7 uses
LUT2            69 uses
LUT3            151 uses
LUT4            275 uses

I/O ports: 79
I/O primitives: 78
IBUF           51 uses
OBUF           27 uses

BUFGP          1 use

I/O Register bits:                  0
Register bits not including I/Os:   347 (2%)

Global Clock Buffers: 1 of 32 (3%)

Total load per clock:
   float_addsub_25bits|clk: 347

Mapping Summary:
Total  LUTs: 502 (4%)


速度倒是还好,但是资源占用很大,
用这个做以后浮点数的运算,还有比较大的价值吗?
此帖出自FPGA/CPLD论坛
 
 
 

回复

699

帖子

0

TA的资源

五彩晶圆(中级)

230
 

原帖由 smart0604 于 2011-3-6 13:25 发表 我在160M的时候时序仿真的时候就是正确的,但是200M的时候就不正确了,但是fmax说是222M,怎么连200M都达不到啊?

 

这就是为什么必须做布局布线后仿真的道理了。fmax并不一定能表明您设计的电路可以达到这样的频率,而是依据电路构造的一般原则,可以达到的最高频率,这并不等于您这个特定的电路结构一定可以达到这个时钟频率。所以时钟频率比较高的电路,必须先做规定引脚后的布局布线后仿真,然后才对FPGA进行编程。

此帖出自FPGA/CPLD论坛
 
 
 

回复

699

帖子

0

TA的资源

五彩晶圆(中级)

231
 

原帖由 evistera 于 2011-3-5 20:23 发表 夏老师,您好,我在Synplify Pro中进行电路综合出现这个问题: W CL170 Pruning bit of step3B[25:0] - not in use ... normal_addsub_25bits.v (114) data_check.srr (36) 20:16:06 Sat Mar 05 Verilog Compile ...

 

我在您提供的程序内并没有找到错误报告中的寄存器变量step3B[25:0],如何让我帮助您分析呢?

此帖出自FPGA/CPLD论坛
 
 
 

回复

699

帖子

0

TA的资源

五彩晶圆(中级)

232
 

原帖由 evistera 于 2011-3-6 10:33 发表 您好,夏老师,请问为何在程序中我用casex,但是synplify pro综合的电路没有看到数据选择器呢? casex(step4Res[FBits+1:FBits]) 2'b1x: begin E3

 

如果您用组合逻辑块,即用always@(*) 引导您的casex块,并把里面的非阻塞赋值,全部改写成阻塞赋值,把条件default定义为无关,如果您的赋值没有写错,则必然生成一个多路数据选择的组合逻辑。您现在给我看的,究竟在什么触发条件下?我不知道。综合器可能也不知道,它如何为您服务呢??

此帖出自FPGA/CPLD论坛
 
 
 

回复

699

帖子

0

TA的资源

五彩晶圆(中级)

233
 

原帖由 tx_xy 于 2011-3-6 12:08 发表 俺提个建议:无论什么时候都不要用casex 这种东东,如果只是自己写点程序搞清楚这个命令的用法,没问题,但实际工程中,千万千万不要使用

 

关键是您在编写这样复杂的嵌套的casex语句块,并且其中被赋值还要进行减1运算,这样的组合逻辑层次多,而您在casex的缺省项里又做了赋值,所以综合器就不知道如何为您服务了!呵呵。您在语句中用非阻塞赋值,而且也没有always触发条件,想要实现的意图表达得不够精确完备,综合器的智慧不可能理解您的想法。我也不能理解您究竟想要干什么?tx_xy网友的回答很有点道理。但如果确实搞清楚组合逻辑的相关和无关条件,工程上应该是可以用casex或者case语句块的,也是可以综合的,只是您必须先搞清楚多个输入和其中某个输出如何通过有关条件和无关条件的组合来实现,必须先有电路架构的思想,才能很好地综合。因为您想编写的是可以综合成可靠合理电路结构的硬件描述语言模型,而不是抽象的有多重含义模糊不清的语句。人都不能理解,更何况机器呢??

此帖出自FPGA/CPLD论坛
 
 
 

回复

699

帖子

0

TA的资源

五彩晶圆(中级)

234
 

原帖由 常见泽1 于 2011-3-6 10:55 发表 夏老师 注意身体啊 支持您

 

谢谢您的关心和支持。我在消遣,打发无聊空闲时间,并不费力。

此帖出自FPGA/CPLD论坛
 
 
 

回复

699

帖子

0

TA的资源

五彩晶圆(中级)

235
 

原帖由 evistera 于 2011-3-6 16:02 发表 夏老师,您好,请问我在做浮点数的加减运算是,经过综合信息如下: Requested Frequency: 335.6 MHz Mapping to part: xc4vlx15sf363-10 Cell usage: FDC 320 uses FDP 27 uses GN ...

 

您是用ISE的core generator 经过配置后自动生成的吧?当然可以用,占用资源多是必然的,所以您应该根据工程需要,做适当的配置,精度只要够用就好。工程设计中,精度够了能用定点的计算,最好用定点,能用特定算法的,不要用灵活算法。资源是宝贵的,浪费资源对一个工程师来说,即使没有人知道你在浪费,也是不应该做的。

此帖出自FPGA/CPLD论坛
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(初级)

236
 

回复 235楼 夏宇闻 的帖子

夏老师,您好!
我程序并不是用core generator自动生成,而是自己用Verilog HDL语言实现的,里头的各个模块都是自己写的;
就是有一种想法,想实现浮点数的各类运算,比如矩阵,三角等函数,
而浮点数的加减乘除是最基本的,
目前写到了乘法,感觉速率还好,但是占用资源很多,所以,心里对自己的初衷有些怀疑了,
此帖出自FPGA/CPLD论坛
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(初级)

237
 

哪种类型的乘法器速度更快?

夏老师,我在用Array-Multiplier做18×18-bit的乘法器时,遇到问题是速度运行很慢,而且占用很大的资源,在位数较低的乘法运算里头,Array-Multiplier还挺好的;请问针对于位数很大的情况,哪种算法的乘法器是比较好的,运算速度快,同时占用资源不是很多,
此帖出自FPGA/CPLD论坛
 
 
 

回复

108

帖子

0

TA的资源

一粒金砂(中级)

238
 
有哪位有经验的电子工程师指点一下,我现在还是一位大学生,现在想自己系统化的学习51单片机和嵌入式的知识,麻烦指点一下需要什么基础知识和如何一步一步去学,要系统化地看那些书和资料,感谢回复
此帖出自FPGA/CPLD论坛
 
 
 

回复

4138

帖子

0

TA的资源

五彩晶圆(中级)

239
 
刚开始学习fpga不久,会常来老师这里的哈哈哈
此帖出自FPGA/CPLD论坛
 
 
 

回复

699

帖子

0

TA的资源

五彩晶圆(中级)

240
 

原帖由 evistera 于 2011-3-6 22:39 发表 夏老师,您好!我程序并不是用core generator自动生成,而是自己用Verilog HDL语言实现的,里头的各个模块都是自己写的;就是有一种想法,想实现浮点数的各类运算,比如矩阵,三角等函数,而浮点数的加减乘除是 ...

 

速度快的算法占用资源多是必然的。如果用Verilog编写通用浮点算法的硬件结构,不考虑精度和运算速度要求是不太现实的。必须把收敛速度和精度需求结合进去,这个硬件的算法模型才有实际价值。当然作为自学是无所所谓的。练多了就能成为国内第一流的所谓专家,但想与世界设计水平比,硬件的通用浮点算法的逻辑结构必定要有性能价格比的问题。世界第一流的通用浮点硬件算法结构研究一直在不断地进展着。我凭自己想象,有比拼的应该是研究通用的浮点硬件算法,必须先有规定的技术指标作为依据,才能有可比性。我不是这方面的专家,只是一个设计技术的普及和推广的工作者,不了解这些依据。望您能通过努力,了解世界在这一领域的水平,超越世界水平,在通用浮点算法研究的国际竞赛中,成为象刘翔一样的胜出者。我知道各种通用的软件算法是有国际性评测机构的,凭我的想象,通用的硬件浮点算法逻辑结构也应该有国际性的评价机构的,先申请参加这样的组织,再申请参加比赛,祝您成功。

此帖出自FPGA/CPLD论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表