核心:利用RAM实现8位输入,1位输出,实现并转串。
关注点:其中时序问题是一个值得关注的问题。
技巧:ROM输出的数据位翻转;保证从最高位开始输出:
data_out[0] <= data_in[8]; // 将输入的最高位赋值给输出的最低位
data_out[1] <= data_in[7]; // 第二高位赋值给输出的第二低位
data_out[2] <= data_in[6]; // 依次类推...
data_out[3] <= data_in[5];
data_out[4] <= data_in[4];
data_out[5] <= data_in[3];
data_out[6] <= data_in[2];
data_out[7] <= data_in[1];
data_out[8] <= data_in[0]; // 输入的最低位赋值给输出的最高位
`timescale 1ns/1ps
module data_error_injector (
input clk, // 时钟信号,50MHz
input reset, // 复位信号,高有效
input DIN_EN, // 数据输入使能,高有效
output reg DOUT, // 输出数据
output reg DOUT_EN, // 数据输出使能,高有效
output reg wea_reg,
output reg wea_0,
output reg enb_0,
output reg enb_1,
output reg [13:0