3670|5

38

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

只读存储器的Verilog程序 [复制链接]


基于ise14.7 用Nexys3开发板
今天玩了玩只读存储器

源代码如下:


module rom8(

    input wire[2:0]addr,

         output wire[7:0]M

    );

         

         parameter N=8;//存储单元数据的位数

         parameter N_WORDS=8;//存储数据的个数

         reg[N-1:0]rom[0:N_WORDS-1];//定义了一个N_WORDS个N位的存储器

    parameter data=64'h00C8F9AF64956CD4;

         parameter IXLEFT=N*N_WORDS-1;

         integer i;

         

         initial begin

           for(i=0;i
                  rom[i]=data[(IXLEFT-N*i)-:N];//功能:从(IXLEFT-N*i)递减取8位 如data[(63-8)-:8]=data[55:48]

         end

         

         assign M=rom[addr];



endmodule


没有作实际效果演示,就仿真了一下:

添加的仿真代码:


module test;



        // Inputs

        reg [2:0] addr;



        // Outputs

        wire [7:0] M;



        // Instantiate the Unit Under Test (UUT)

        rom8 uut (

                .addr(addr),

                .M(M)

        );



        initial begin

                // Initialize Inputs

                addr = 0;



                // Wait 100 ns for global reset to finish

                #20;



                // Add stimulus here

      addr=3'h0;

                #20;

                addr=3'h1;

                #20;

                addr=3'h2;

                #20;

                addr=3'h3;

                #20;

                addr=3'h4;

                #20;

                addr=3'h5;

                #20;

                addr=3'h6;

                #20;

                addr=3'h7;

                #20;

        end



endmodule


拿回来大家一起学习。求大神指教!!!

QQ图片20150723094819.png (103.8 KB, 下载次数: 1)

仿真结果

仿真结果
此帖出自FPGA/CPLD论坛

最新回复

这种用法以前没见过,学习了。 谢谢!  详情 回复 发表于 2015-7-23 22:35

赞赏

1

查看全部赞赏

点赞 关注
 

回复
举报

565

帖子

513

TA的资源

裸片初长成(中级)

沙发
 
楼主的问题是?需要大家指教什么呢?
此帖出自FPGA/CPLD论坛

点评

求批评指正完善  详情 回复 发表于 2015-7-23 10:02
 
 

回复

38

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
绿茶 发表于 2015-7-23 09:57
楼主的问题是?需要大家指教什么呢?

求批评指正完善
此帖出自FPGA/CPLD论坛
 
 
 

回复

52

帖子

0

TA的资源

一粒金砂(中级)

4
 
请教楼主,data[(IXLEFT-N*i)-:N]是什么运算?
谢谢!
此帖出自FPGA/CPLD论坛

点评

data[(IXLEFT-N*i)-:N];//功能:从(IXLEFT-N*i)递减取8位 如data[(63-8)-:8]=data[55:48] 也可以换成+号  详情 回复 发表于 2015-7-23 17:39
 
 
 

回复

38

帖子

0

TA的资源

一粒金砂(中级)

5
 
mcza30 发表于 2015-7-23 13:54
请教楼主,data[(IXLEFT-N*i)-:N]是什么运算?
谢谢!

data[(IXLEFT-N*i)-:N];//功能:从(IXLEFT-N*i)递减取8位 如data[(63-8)-:8]=data[55:48]
也可以换成+号
此帖出自FPGA/CPLD论坛
 
 
 

回复

52

帖子

0

TA的资源

一粒金砂(中级)

6
 
PuesueDream 发表于 2015-7-23 17:39
data[(IXLEFT-N*i)-:N];//功能:从(IXLEFT-N*i)递减取8位 如data[(63-8)-:8]=data[55:48]
也可以换成+号

这种用法以前没见过,学习了。
谢谢!
此帖出自FPGA/CPLD论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表