2394|3

48

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

求助前辈们Verilog lut个数的问题 [复制链接]

问一下这几个模块有几个lut,因为是新手,不知道综合出哪些函数,需要讲函数来源细一些。

然后是延迟上有什么,多少级lut。

注:最后两张图片有示例调用。

此帖出自FPGA/CPLD论坛

最新回复

本帖最后由 卿小小 于 2022-12-15 17:29 编辑 zzw_rst 发表于 2022-12-15 14:41 synthesis的结果没太大意义,最终应该以Implementation布局布线之后为准。 同时,为了避免Implementation自动优化资源,代码里很多内部变量可能需要简单处理一下,主要是在对应的内部变量定义的前端添加诸如 (*keep="true"*)语句防止被优化掉。   “starting-point”不太理解什么意思。 个人胡乱推测“starting-point”是进行物理布局布线的初始切入点。简单的布局布线没难度,无需考虑切入点,最后的布线、资源结果基本相似。当遇到复杂的部分(例如使用大量的generate或者for循环),初始优化哪一部分,其时序会好一些;后续优化的部分,不排除对应的逻辑时序会变差。   详情 回复 发表于 2022-12-15 15:44
点赞 关注
 

回复
举报

92

帖子

0

TA的资源

一粒金砂(高级)

沙发
 
本帖最后由 卿小小 于 2022-12-14 17:54 编辑

//------说明

如果不是导师作业,这种代码的含金量不太高。想学习Verilog或者FPGA的话建议从开发板的教程入手。

为了提高交流效率,代码之类的内容建议使用源文件或者插入文字的形式处理,尽量不要贴代码图片。

//------流程

此处仅以第一张图的“Vr1to8check"进行流程和功能说明。其他几个文件的处理是相似的流程。

//---基本步骤:

1.创建工程,器件型号任意选择(此处我选择的xc7k325tffg900-2)。
2.新建源文件或者导入源文件,源文件内是需要测试验证的代码。
3.运行综合Synthesis,等待运行结束查看综合后资源占用结果。
4.同时,在RTL_ANALYSIS/Open_Elaborated_Design中可以对RTL进行更加详细的网表分析。

//---步骤示例:

//---源文件

`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer: 
// 
// Create Date: 2022/12/14 17:00:57
// Design Name: 
// Module Name: Vr1to8check
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//////////////////////////////////////////////////////////////////////////////////

module Vr1to8check(
    input       [0:7]       I       ,//input
    output reg              VALID    //output
    );
    //------internal_signals: reg, wire, integer.
    integer                 N1s     ;
    integer                 j       ;
    
    //------always
    always@(I) begin
        N1s = 0 ;
        for(j = 0 ; j <= 7 ; j = j + 1) N1s = N1s + I[j] ;//for()
        VALID = (N1s == 1);
    end
    //a. when "I" is changed, first N1s is changed to "0";
    //b. then N1s will execute “for”,which means: N1s+I[0]+I[1]+I[2]+I[3]+I[4]+I[5]+I[6]+I[7];
    //c. at the end, VALID=1 @N1s=1, VALID=0 @N1s=0.
    
    //------
    
endmodule

 

此帖出自FPGA/CPLD论坛

点评

很感谢回复。第一、二张是同一个功能的,lut数是3vs4,是我弄反了或者是版本的问题?lut数感觉自己能算出来好一点,机器也需要对比参考。如果是比较多的代码要综合,需要选择的时候,都要敲上去感觉可能会花多点时间  详情 回复 发表于 2022-12-15 14:41
 
 

回复

48

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
卿小小 发表于 2022-12-14 17:53 //------说明 如果不是导师作业,这种代码的含金量不太高。想学习Verilog或者FPGA的话建议从开发板的教 ...

很感谢回复。



第一、二张是同一个功能的,lut数是3vs4,是我弄反了或者是版本的问题?



lut数感觉自己能算出来好一点,机器也需要对比参考。如果是比较多的代码要综合,需要选择的时候,都要敲上去感觉可能会花多点时间,不知道我想得对不对。



because even in this simple example (just an 8-input function) Vivado does not search the entire "solution space" for the best implementation, and the results depend very much on the starting point. “starting point”是什么。



最快实现方式应该不全取决于lut数吧,有什么因素影响。



 


此帖出自FPGA/CPLD论坛

点评

synthesis的结果没太大意义,最终应该以Implementation布局布线之后为准。 同时,为了避免Implementation自动优化资源,代码里很多内部变量可能需要简单处理一下,主要是在对应的内部变量定义的前端添加诸如 (*ke  详情 回复 发表于 2022-12-15 15:44
 
 
 

回复

92

帖子

0

TA的资源

一粒金砂(高级)

4
 
本帖最后由 卿小小 于 2022-12-15 17:29 编辑

synthesis的结果没太大意义,最终应该以Implementation布局布线之后为准。

同时,为了避免Implementation自动优化资源,代码里很多内部变量可能需要简单处理一下,主要是在对应的内部变量定义的前端添加诸如 (*keep="true"*)语句防止被优化掉。

 

“starting-point”不太理解什么意思。

个人胡乱推测“starting-point”是进行物理布局布线的初始切入点。简单的布局布线没难度,无需考虑切入点,最后的布线、资源结果基本相似。当遇到复杂的部分(例如使用大量的generate或者for循环),初始优化哪一部分,其时序会好一些;后续优化的部分,不排除对应的逻辑时序会变差。

此帖出自FPGA/CPLD论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表