在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1510|回复: 0

[求助] verilog hdl 的疑问

[复制链接]
发表于 2015-9-23 15:24:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
有2个文件
pc.v    : 读指令
id.v    : 译码
pineline    :流水线控制

id.v
{
    ...
    //当前读取的4字节指令
    input    wire[31:0]    inst;     
     
    //流水线控制标志            
    input    wire[8:0]     flg_pineline;     
    ...
     
    //------------------------------------
    //以下用c表达
    //当前指令,假设指令最大长度 12*4=48字节
    unsiged char * cur_pc        = malloc(48);
     
    //下一条指令,假设指令最大长度 12*4=48字节         
    unsiged char * next_pc    = malloc(48);     
     
    //全局变量,如果一条指令读取完成
    //如果10字节的指令,要分3次,
    //期间每次都是 false,最后完成是 true     
    flg_inst_complete;     
     
    //指令总长度            
    inst_tot_len;                             
     
    //本次读取指令的长度(如:10自己指令,
    //前2次为4字节,最后一次读取的指令
    //长度为2字节,另外2字节为下一指令的)
    inst_cur_len;     
                             
    //指令剩余长度
    inst_left_len;
     
    //cur_pc[cur_pos]                        
    int cur_pos    ;                             
     
    ........
    译码分析
    .........
     
    //最后
    for(i=inst_cur_len;i>0; i--)
    {
        cur_pc[cur_pos]    = inst[i];
        cur_pos++;
    }
     
    //读取12字节,有10字节是当前指令,
    //2字节为下一条指令     
    if(flg_inst_complete == true)
    {
        cur_pos = 0;
         
        for(i=(32 - inst_cur_len);i>0; i--)
        {
            next_pc[cur_pos]    = inst[i];
            cur_pos++;
        }
    }
    //-----------------------------------
}

问题:
1)以上c逻辑如果用 verilog hdl 表达,该如何写?
2)全局变量的初始值(flg_inst_complete=true,
    inst_len_dword_cnt=0)该怎样赋值?
    在c里简单,main函数里赋值即可;
    但在verilog hdl里,该怎样做?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

X

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

GMT+8, 2025-6-27 21:22 , Processed in 0.015570 second(s), 11 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表