ee_king的个人空间 https://blog.eetop.cn/1494617 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

Analysis Components & Techniques(从hdl_adder.m开始)

已有 1458 次阅读| 2018-12-28 13:46 |系统分类:芯片设计

   hdl_adder.m  

        为了将我们的ml_adder函数用作DUT,我们创建了一个MATLAB包装器函数,我们可以将其连接到HDL模块。EDA Simulator Link工具箱提供位向量和内部MATLAB数据类型之间的转换功能。
        MATLAB源代码如下所示:

        function [iport,tnext] = hdl_adder(oport, tnow, portinfo)
        % Demonstration for MATLAB Connectivity
        % This function uses the HDL Simulator Link methodology to get HDL port values
        % into and out of this function
        %
        tnext = [];
        iport = struct();

        % Convert the input ports to integers
        input0 = mvl2dec(oport.input0);
        input1 = mvl2dec(oport.input1);

        % This is a call to a simple MATLAB function found in ml_adder.m
        output0 = ml_adder(input0,input1);

        % Convert and assign the output port to a 9 bit vector
        iport.output0 = dec2mvl(output0,9);

        % [EOF] hdl_adder.m

        modelsim_matlab.m

        在Questa和MATLAB Simulator之间创建连接有两个步骤。 首先,启动MATLAB并告诉它创建一个EDA Simulator Link后台程序来监听与Questa的通信。 我们可以使用MATLAB函数来完成这项工作。
        MATLAB源代码如下所示:

        % This is a MATLAB startup function to create an HDL Simulator Link
        % It requires the FLI library to be loaded on the vsim command line
        hdldaemon('socket', 5001, 'time', 'int64');

        % This adds the MATLAB directory containing the MATLAB functions
        addpath ./MATLAB;

        第二步是使用添加的FLI命令启动Questa以加载MATLAB EDA Simulator Link功能。 MATLAB提供了所使用的FLI模块,因此我们将“matlabclient $(MATLAB)/ toolbox / edalink / extensions / modelsim / linux64 / liblf hdlc_tmwgcc.so”添加到Questa命令行。
        一旦Questa运行,我们提供FLI命令将testbench DUT模块(在本例中为shell模块)连接到MATLAB hdl_adder函数。 这是使用命令'matlabcp / testbench / dut -rising / testbench / dut / valid -mfunc hdl_adder -socket 5001'完成的。 在此示例中,脚本文件(scripts / matlab.do)用于简化此操作。
        在此示例中,testbench(sv / testbench.sv)使用+ define + MATLAB编译。 这将使用空模块替换现有的DUT Verilog模块以连接到MATLAB。
        您可以使用'make simulate_matlab_dut'运行此示例以查看结果。 运行时,您将看到MATLAB控制台启动,HDL后台程序开始侦听连接。 延迟(为了给MATLAB启动预留时间),Questa将启动并建立DUT到MATLAB的连接。 运行时,您将看到Questa环境正常运行以及在MATLAB控制台中查看MATLAB函数计算。 如果需要对MATLAB函数进行调试,MATLAB控制台的输出也会保存在matlab.log文件中。


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 2

    粉丝
  • 0

    好友
  • 0

    获赞
  • 6

    评论
  • 访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-3-29 13:28 , Processed in 0.026223 second(s), 18 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部