PCI9054学习
一、首先谈谈Dual-Port RAM和FIFO
端口说明:wr_aclr:写清零,wrclock:写时钟,wren:写使能,data[0..0]:写数据总线(位宽为1bit),wraddress[13..0]:写地址总线;
rd_aclr:读清零,rdclock:读时钟, q[31..0]:读数据总线(位宽为32bits),rdaddress[8..0],读地址总线;
该模块的RAM的大小为16384bits,写数据总线为1为,寻址总线为14bits,在该工程中模拟的数据包为7136bits;在读RAM的时候,因为读总线是32bits,寻址总线相应应该设为9bits,
Write Address
1 /*the addtion of write address*/ 2 always @ (posedge clk or negedge rst) 3 if(!rst) 4 r_ram_wab_reg <= 13'b0; 5 else if(STATE == 'd32) begin 6 if(r_ram_wab_reg=='d7135) 7 r_ram_wab_reg <= 13'b0; 8 else 9 r_ram_wab_reg <= r_ram_wab_reg + 1'b1; 10 end 11 else 12 r_ram_wab_reg <= 13'b0; 13 14 /*the high bit of the write address*/ 15 reg r_ram_wab_hbit; 16 always @ (posedge clk or negedge rst) 17 if(!rst) 18 r_ram_wab_hbit <= 1'b0; 19 else if(STATE == 'd33) 20 r_ram_wab_hbit <= ~r_ram_wab_hbit; 21 else 22 r_ram_wab_hbit <= r_ram_wab_hbit; 23 24 /*write address*/ 25 wire [13:0] r_ram_wab = {r_ram_wab_hbit,r_ram_wab_reg}; //RAM的大小为2^14=16384bits
Read Address
1 always @ (posedge clk or negedge rst) 2 if(!rst) 3 r_ram_rab_reg <= 8'b0; 4 else if(r_ram_rab_reg == 8'd223) 5 r_ram_rab_reg <= 8'b0; 6 else if(r_req | wrreq)//一个包读完后,wrreq才拉低 7 r_ram_rab_reg <= r_ram_rab_reg + 1'b1; 8 else 9 r_ram_rab_reg <= 8'b0; 10 11 always @ (posedge clk or negedge rst) 12 if(!rst) 13 r_ram_rab_hbit <= 1'b0; 14 else if(r_ram_rab_reg == 8'd223) 15 r_ram_rab_hbit <= ~r_ram_rab_hbit; 16 17 wire [8:0] r_ram_rab = {r_ram_rab_hbit,r_ram_rab_reg};
二、一个比较有意思的序列生成方法
Array Generate
1 /*****Generate the number ********/ 2 /*******3 2 1 0 7 6 5 4 11 10 9 8 15 14 13 12......31 30 29 28********/ 3 always @ (posedge clk or negedge rst) 4 if(!rst) 5 count <= 2'd3; 6 else if(blankout) 7 count <= count - 1'b1; 8 else 9 count <= 2'd3; 10 11 reg [2:0] cnt; 12 always @ (posedge clk or negedge rst) 13 if(!rst) 14 cnt <= 3'b0; 15 else if(blankout) begin 16 if(count == 'd0) 17 cnt <= cnt + 1'b1; 18 end 19 else 20 cnt <= 3'b0; 21 22 wire [4:0] number = count + (cnt<<2);//此处cnt为3 bits,count 为2 bits。number 为5 bits
posted on 2012-11-22 16:38 lanlingshan 阅读(613) 评论(0) 编辑 收藏 举报