作用
从文件中读取数据存到寄存器中
区别
$readmemb : 要求文件中的数据为二进制数据
$readmemh : 要求文件中的数据为十六进制数据
用法
$readmemb用法
① $readmemb("<数据文件名>",<存储器名>);
② $readmemb("<数据文件名>",<存储器名>,<起始地址>);
③ $readmemb("<数据文件名>",<存储器名>,<起始地址>,<终止地址>);
$readmemh 用法
① $readmemh("<数据文件名>",<存储器名>);
② $readmemh("<数据文件名>",<存储器名>,<起始地址>);
③ $readmemh("<数据文件名>",<存储器名>,<起始地址>,<终止地址>);
示例

注意
今天在看资料时,看到这么一行代码:
(*rom_style="block"*)$readmemh("code.hex",memory);
在 $readmemh 前面加入 (*rom_style="block"*) 是Verilog HDL中的rom_style 属性声明,用于指导Vivado工具使用FPGA内的块存储器实现该存储器,而不是使用FPGA内的分布式存储器实现。