欢迎来到天天文库
浏览记录
ID:48142108
大小:1.30 MB
页数:39页
时间:2020-01-17
《第9章 宏模块.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第9章宏功能模块设计9.1设计常用存储器ROM(ReadOnlyMemory)只读存储器RAM(RandomAccessMemory)随机访问存储器FIFO(FirstInFirstOut)先进先出存储器存储器建模必须考虑的两个方面的问题:声明存储器容量的大小。明确对存储器访问操作的权限。例如:指出可以对存储器做以下哪几种操作:1)只读2)读写3)同步读写……存储器建模modulemyrom(read_data,addr,read_en);inputread_en;input[3:0]addr;output[3:0]read_data;
2、reg[3:0]read_data;reg[3:0]mem[0:15];//二维4bits,16wordsinitial$readmemb(“my_rom_data”,mem);//系统任务always@(*)if(!read_en)read_data=mem[addr];endmodule简单ROM建模my_rom_data0000010111000011110100100011111110001001100000011101101000011101ROM的数据存储在另外的一个独立的文件中。寄存器组的定义及使用寄存器组定义方式reg[
3、msb:lsb]寄存器组名[start:end];[msb:lsb]是定义每个单元的数据宽度;[start:end]用于定义单元的个数reg[7:0]mem[0:15];寄存器组只能按单元操作,不能对单元里的指定比特操作,例如mem[3],mem[addr]mem[3][4]√X注意:用二维的寄存器组来定义存储器。ROM中的数据保存在一个独立的文件中,这是一种保存ROM数据的通用的方法,它可以使数据和ROM模型分开。利用FPGA可以实现ROM的功能,但其不是真正意义上的ROM,因为FPGA器件在掉电后,其内部的所有信息都会丢失,再次工作
4、时需要重新配置RAM模型比ROM模型稍微复杂:它必须具有读写能力;进行读写时一般情况下使用相同的数据总线,如何处理?简单RAM建模modulemymem(read,write,addr,data);inputread,write;//读写控制信号input[3:0]addr;inout[3:0]data;//双向端口reg[3:0]memory[0:15];//二维寄存器组//从存储器读出到总线上assigndata=read?memory[addr]:4’bz;//从总线写入存储器always@(posedgewrite)memory
5、[addr]=data;endmodule双向端口inout[7:0]databus;使用双向端口必须遵循下面的规则:inout口只能声明为线网型,不允许把它声明为寄存器类型。即不允许在过程块(always块)中对网络连接类型的数据进行过程赋值。在设计中,每次只能从一个方向来驱动inout口。例如:当使用总线读RAM中的数据时,如果同时又向RAM模型的双向数据总线写数据,就会产生逻辑竞争,导致总线数据无法确定。必须为inout口设计控制逻辑,用来保证正确的操作。当把inout口作为输入口时,必须通过控制逻辑禁止输出到inout口。上述模
6、型是可综合的,但是许多工具只产生一系列的寄存器,这一般就需要更大的空间,从而比实际的存储器的价格更昂贵。Megafunctions库Maxplus2库Primitives库9.2宏功能模块设计1Megafunctions库Megafunction库是Altera提供的参数化模块库。从功能上看,可以把Megafunction库中的元器件分为:算术运算模块(arithmetic)逻辑门模块(gates)IO模块(I/O)储存模块(storage)存储器模块设计举例QuartusII提供的参数化ROM是lpm_rom,下面用一个乘法器的例子来
7、说明它的使用方法:使用lpm_rom构成一个4位×4位的无符号数乘法器;利用查找表方法完成乘法功能。数据线、地址线宽度设置控制端口设置添加.mif文件插叙.mif文件如下图所示就是基于ROM实现的4位×4位的无符号数乘法器电路图,其参数设置为:LPM_WIDTH=8LPM_WIDTHAD=8LPM_FILE=mult_rom.mif存储模块库算数运算模块库下面以参数化乘法器lpm_mult为例来说明如何在设计中使用宏功能模块。lpm_mult的基本参数已在下表中给出。lpm_mult(1)调用lpm_mult(2)lpm_mult参数设
8、置输入输出位宽设置乘法器类型设置(3)编译仿真8位有符号乘法器电路功能仿真波形I/O模块库I/O模块库锁相环模块参数化锁相环宏模块altpll以输入时钟信号作为参考信号实现锁相,而输出若干个同步倍频或者分频
此文档下载收益归作者所有