1. bread鸿运国际论坛/
  2. 个人版区/
    1. 电子论坛综合区
    2. 嵌入式论坛
    3. 电源技术论坛
    4. 硬件设计论坛
    5. 测试测量论坛
    6. 检测技术与质量
    7. EDA设计论坛
    8. 综合技术与应用
    9. 开源硬件
    10. IC设计论坛
    11. 消费电子论坛
    12. 无线通信论坛
    13. 个人版区
    14. 厂商专区
    15. 论坛服务区
    16. 高校联盟
    17. 供求信息发布
  3. 特权同学FPGA专区
    1. 阿东Verilog技术专版
    2. 直流马达驱动电路设计
    3. LabVIEW英雄联盟
  4. / 例说FPGA连载100:双摄像头图像采集之ddr_avl_bridge.v ...
    关闭提示

[FPGA作品] 例说FPGA连载100:双摄像头图像采集之ddr_avl_bridge.v模块代码解析

[复制链接]
版主
发表于 2017-5-15 21:07:19   1736 查看 0 回复 只看该作者 倒序浏览
分享
例说FPGA连载100:双摄像头图像采集之ddr_avl_bridge.v模块代码解析
特权同学,版权所有
配套例程和更多资料下载链接:
http://pan.baidu.com/s/1c0nf6Qc
         该模块用于衔接DDR2控制器IP核与用户逻辑,即两个video_ctrl.v模块产生的视频流通过该模块写入到DDR2存储器中,而DDR2存储器中的视频流又通过该模块送往lcd_driver.v模块,用于LCD的显示。该模块的功能框图如图20.7所示。该模块例化了两个DDR2写缓存FIFO,分别用于两路输入视频的数据流缓存;同时也例化了一个DDR2读出缓存FIFO,用于缓存VGA显示需要读取的DDR2数据。
图20.7 DDR2控制器桥接模块功能框图
         由于输入视频为两路,而读出这些视频时,我们希望这两路视频同时显示在液晶屏的左右两侧,因此它的地址分配有一点技巧。我们的地址分配思路是这样的:
由于数据读写位宽为64bit,即4*16bit,因此我们一个地址对应的视频流像素点是4;DDR2读写的突发长度为8(即local_size = 8),因此我们主要控制地址位bit22-3,对应的像素点是32。由于视频流一行为640像素,那么20个bit22-3地址就可以存储一行的视频像素点数据。为了便于寻址,我们取32次突发传输地址作为一行的存储空间,虽然只是用了其中的20个地址。为了在读取视频流时,屏幕左右的两个视频行地址是紧挨着的地址,我们可以定义地址的bit8=0时,用于左侧视频的地址空间;bit8=1时,用于右侧视频的地址空间。这部分的代码如下所示。
////////////////////////////////////////////////////
//DDR读写地址信号产生   
reg[22:0] local_w1addr,local_w2addr;    //写DDR地址
reg[22:0] local_raddr;  //读DDR地址
    //读DDR地址产生
always @(posedge phy_clk or negedge local_rst_n)
    if(!local_rst_n) local_raddr <=23'd0;
    else if(rdfifo_clr_r[3])local_raddr <= 23'd0;  
    else if(sddr_state == SDDR_RSOPRF)begin
        if(local_raddr[7:3] == 5'd19)begin
            local_raddr[7:3] <=5'd0;
            local_raddr[22:8] <=local_raddr[22:8]+1'b1;
        end
        else local_raddr[7:3] <=local_raddr[7:3]+1'b1;
    end
   
    //第一路视频写DDR地址产生
always @(posedge phy_clk or negedge local_rst_n)
    if(!local_rst_n) local_w1addr<= 23'd0;
    else if(pos_wrf1_clr) local_w1addr<= 23'd0;   
    else if(sddr_state == SDDR_WSOP1)begin
        if(local_w1addr[7:3] == 5'd19)begin
            local_w1addr[7:3] <=5'd0;
            local_w1addr[22:8] <=local_w1addr[22:8]+2'b10;
        end
        else local_w1addr[7:3] <=local_w1addr[7:3]+1'b1;
    end
   
    //第二路视频写DDR地址产生  
always @(posedge phy_clk or negedge local_rst_n)
    if(!local_rst_n) local_w2addr<= 23'h000100;
    else if(pos_wrf2_clr) local_w2addr<= 23'h000100;      
    else if(sddr_state == SDDR_WSOP2)begin
        if(local_w2addr[7:3] == 5'd19)begin
            local_w2addr[7:3] <=5'd0;
            local_w2addr[22:8] <=local_w2addr[22:8]+2'b10;
        end
        else local_w2addr[7:3] <=local_w2addr[7:3]+1'b1;
    end
wire[22:0] local_waddr = (sddr_state == SDDR_WRIT1) ? local_w1addr:local_w2addr;   
assign local_address = ((sddr_state == SDDR_WRIT1) || (sddr_state ==SDDR_WRIT2)) ? local_waddr:local_raddr;    //DDR2地址赋值  
assign local_size = 7'd8;

高级模式
您需要登录后才可以回帖 登录 | 注册
关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表
  1. time最新主题
  2. recommend推荐主题
  3. hot热门主题
  4. post 我的帖子
-

推荐专区

技术干货集中营

专家问答

用户帮助┃咨询与建议┃版主议事

我的提问

工程师杂谈

工程师创意

工程师职场

论坛电子赛事

社区活动专版

发烧友活动

-

嵌入式论坛

ARM技术论坛

Android论坛

Linux论坛

单片机/MCU论坛

FPGA|CPLD|ASIC论坛

DSP论坛

嵌入式系统论坛

-

电源技术论坛

电源技术论坛

无线充电技术

-

硬件设计论坛

PCB设计论坛

电路设计论坛

电子元器件论坛

控制|传感

总线技术|接口技术

-

测试测量论坛

LabVIEW论坛

Matlab论坛

测试测量技术专区

仪器仪表技术专区

-

EDA设计论坛

multisim论坛

PADS技术论坛

Protel|AD|DXP论坛

Allegro论坛

proteus论坛|仿真论坛

EasyEDA-中国人自已的EDA工具

Orcad论坛

-

综合技术与应用

电机控制

智能电网

光电及显示

参考设计中心

汽车电子技术论坛

医疗电子论坛

-

开源硬件

DFRobot专区

树莓派论坛

智能硬件论坛

开发快智能硬件开发平台

Intel物联网开发者专区

Waveshare

乐美客SBC专区

Arduino论坛

BeagleBone论坛

机器人论坛

创客神器NanoPi

小钢炮CANNON

比派科技banana pi专区

-

无线通信论坛

无线通信技术专区

天线|RF射频|微波|雷达技术

-

IC设计论坛

芯片测试与失效分析

Mixed Signal/SOC[数模混合芯片设计]

Analog/RF IC设计

设计与制造封装测试

-

个人版区

阿东Verilog技术专版

直流马达驱动电路设计

LabVIEW英雄联盟

特权同学FPGA专区

-

厂商专区

灵动微电子 MM32

盈鹏飞嵌入式

TI论坛

TI Deyisupport社区

芯灵思嵌入式论坛

Tisan

米尔科技

庆科社区

WIZnet技术专区

Cypress技术论坛

飞凌嵌入式

Qualcomm技术论坛

英创嵌入式

机智云GoKit论坛

-

检测技术与质量

电磁兼容(EMC)设计与整改

安规知识论坛

检测与认证

-

消费电子论坛

手机技术论坛

平板电脑/mid论坛

音视/视频/机顶盒论坛

-

电子论坛综合区

聚丰众筹官方社区

新人报道区

聚丰供应链

-

论坛服务区

-

供求信息发布

供需广告

招聘┃求职发布区

电子展览展会专区

鸿运国际手机欢迎你