53用户定义元件(UDP).ppt

53用户定义元件(UDP).ppt

ID:48166439

大小:73.50 KB

页数:8页

时间:2020-01-17

53用户定义元件(UDP).ppt_第1页
53用户定义元件(UDP).ppt_第2页
53用户定义元件(UDP).ppt_第3页
53用户定义元件(UDP).ppt_第4页
53用户定义元件(UDP).ppt_第5页
资源描述:

《53用户定义元件(UDP).ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、用户定义元件(UDP)PrimitiveUDP_name(OutputName,List_of_inputs);Output_declaration;List_of_input_declarations;[reg_declaration];[initial_statement];//输出端赋以初值(0,1或x)tablelist_of_table_entries;endtableendprimitiveUDP只能有一个输出和一个或多个输入,第一个端口必须是输出端口,取值为0,1或x(不允许为z),输入中出现

2、z以x处理。所有的端口变量都必须是1位的其行为以表的形式处理二选一多路选择器(UDP)PrimitiveMux2x1(out,in1,in2,Sel);Outputout;Inputin1,in2,sel;table//in1in2sel:out0?1:0;//“?”表示既可以是0,也可以是11?1:1;?00:0;?10:1;00x:0;11x:1;endtableendprimitive带异步清零的D触发器(UDP)PrimitiveD_Async_FF(Q,Clk,Clr,Data);outputQ;

3、regQ;inputClk,Clr,Data;table//ClkClrData:Q(state):Q(next)(01)00:?:0;//(01)表示0转换到1(01)01:?:1;(01)01:1:1;(01)00:0:0;//忽略时钟负边沿,(?1)0?:?:-;//“-”表示值无变化(?1)1?:?:0;?1?:?:0;endtableendprimitiveVerilog系统函数从文件读取数据$readmemh(“filename”,memory_namebegin_addrend_addr);/

4、/16进制$readmemb("filename",memory_namebegin_addrend_addr);//2进制写数据到文件$writememh(“filename”,memory_namebegin_addrend_addr);//16进制$writememb("filename",memory_namebegin_addrend_addr);//2进制Verilog系统函数begin_addr,end_addr可以省略,省略的时候,read操作时,以文件的大小为准,write操作时,以mem

5、ory的size为准.在read操作的文件中,允许空格,TAB键,换行,空行,以及注释.数据文件中可以包括注释语句数据只允许以二进制或十六进制存放,不能包含位宽与基数说明内容。各个数据之间以空白符间隔。每个数据位允许出现逻辑值的四种状态与下划线数据文件中允许包含地址说明,形式为“@hhhh”,其中“@”为地址说明符,“h”表示地址以十六进制形式给出。ROMmoduleROM(addr,data,oeb);input [14:0]addr;//地址信号output[7:0]data;//数据信号inputoe

6、b;//读使能信号,低电平有效 //用寄存器数组来模拟ROMreg[7:0]mem[0:32767]; //定义读操作延迟时间parameterRDELAY=1500; assign#RDELAYdata=(oeb==0)?mem[addr]:8'hzz; //Simulation开始时,从文件中读入数据intial$readmemh("rom_data.hex",mem);endmoduleRAMmoduleRAM(addr,data,ceb,web,oeb); input[14:0]addr;inou

7、t[7:0]data; //ceb:片选信号,oeb:读使能信号,web:写使能信号inputceb,oeb,web;reg[7:0]mem[0:32767]; wireWRITE,READ; //定义读,写操作延迟时间paremeterWDELAY=1000,RDELAY=1500;RAM//当WRITE,和数据线上信号发生变化,读入一个数据always@(WRITEordata)begin   #WDELAY      if(WRITE)mem[addr]<=data; end assignREAD

8、=(oeb==0)&(ceb==0); assignWRITE=(web==0)&(ceb==0); assign#RDELAYdata=READ?mem[addr]:8'hzz;endmodule

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。