明德扬_面试解析

已知某传输流的包长为168字节,其数据格式如下:
0x47包头,0x00,0x00,id,数据

其中0x47为包头信号,id为一字节的数据,取值范围为0x00到0xff,数据为有效负载负载,负载中不会出现0x47

需要把流中的id映射成新的值,映射表有外部上位机实时设置RAM实现。
模块接口如下:

module id_map(
    input rst_i,//复位信号
    input clk_i,//数据时钟信号
    input [7:0] dat_i,//输入数据信号
    input vld_i,//输入数据有效信号
    //映射表
    input cpu_clk_i,//主控时钟信号
    input [7:0] cpu_dat_i,//主控的RAM写
    input [7:0] cpu_addr_i,//主控的ram写地址信号
    input cpu_wr_i,//主控的ram写使能
    //输出
    output dat_o,//映射后的数据信号
    output hdr_o,//映射后的数据包头信号
    output vld_o//映射后的有效信号
    );

RAM的读书延时为一个时钟周期,其接口信号如下:

module ram(
    input wrclock,//ram写时钟
    input [7:0] wraddress,//ram写地址
    input wr_en,//ram写使能
    input [7:0] data,//ram写数据

    input rdclock,//ram读时钟
    input [7:0] rdaddress,//ram读地址
    input ed_en,//ram读使能
    output [7:0] q,//ram读数据
    );

要求:
1. 搞清楚模块的设计思路,说明上位机设置ram表的数据格式。
2. 完成verilog或者vhdl代码。
3. 简述该模块由上位机实时设置映射表可能带来的问题,如何处理?


猜你喜欢

转载自blog.csdn.net/i540113104/article/details/81268473