- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章——Verilog硬件描述语言3分析
module pipe(q3,d,clk); output [7:0] q3; input [7:0] d; input clk; reg [7:0] q3,q2,q1; always @ (posedge clk) begin q1 = d; q2 = q1; q3 = q2; end endmodule module pipe(q3,d,clk); output [7:0] q3; input [7:0] d; input clk; reg [7:0] q3,q2,q1; always @ (posedge clk) begin q3 = q2; q2 = q1; q1 = d; end endmodule 任务和函数的比较 教材P110 判断if else的配对情况 if(…) for(…..) if(..) begin 语句组; end else ……. module test11(a,b,data_out); input a,b; output data_out; reg data_out; always @ (a or b) begin if(a) data_out = a; end endmodule always @ (a or b) begin if(a) data_out = a; else data_out = b; end $readmemb和 $readmemh 格式: $readmemb(“文件名”,存储器名,起始地址,终止地址); $readmemh(“文件名”,存储器名,起始地址,终止地址); * module test(); reg[1:0] my_mem[7:0]; integer i; initial begin $readmemb(D:/ test/my_data.dat,my_mem); for(i=0;i8;i=i+1) $display(my_mem[%d] = %b,i,my_mem[i]); end endmodule //定义了8个宽度为2位存储器组 //将位于D:/test目录下的my_data.dat中的数据读入my_mem中 其中my_data.dat如下内容: 00 01 10 11 00 01 10 11 * 执行结果如下: memory[ 0] = 00 memory[ 1] = 01 memory[ 2] = 10 memory[ 3] = 11 memory[ 4] = 00 memory[ 5] = 01 memory[ 6] = 10 memory[ 7] = 11 数据文件中可以用@地址将数据存入存储器的指定位置,地址用十六进制数表示,@和地址间不能有空格。 例: @1 00 00 @6 1x z1 ? 执行结果如下: my_mem[ 0] = xx my_mem[ 1] = 00 my_mem[ 2] = 00 my_mem[ 3] = xx my_mem[ 4] = xx my_mem[ 5] = xx my_mem[ 6] = 1x my_mem[ 7] = z1 语句中的起始地址和终止地址的不同定义对数据装载有影响 例: reg [7:0] mem[1:256]; initial $readmemh(“mem.data”,mem); initial $readmemh(“mem.data”,mem,16); initial $readmemh(“mem.data”,mem,128,1); * $fopen和 $fclose Verilog 语言支持将仿真结果输出到指定的文件中,使用系统函数$fopen打开一个可以写入数据的文件;再使用系统任务$fclose将前面打开的文件关闭。 格式: file_descriptor=$fopen(“文件名”); * 3.4.7 编译预处理命令 在进行Verilog 语言综合时,综合工具首先对这些编译预处理命令进行“预处理”,然后将得到的结果和源程序一起再进行通常的编译处理。 编译预处理指令前有一个标志符“`”(反引号)加以确认。 其作用范围是:命令定义
文档评论(0)