整个工程中,一共编译了这么些.v文件,相对应的bdf很复杂,但是RTL视图很清晰

配置参数: fpga的fifo用了4096 乘 2个,分别用作sdram的输入和输出,sdram=16M

ccd的工作点,通过几个参数定义出来
parameter PRE_SH = 1;
parameter ON_SH = PRE_SH + 6;        // SH*400ns=2400ns,1000ns,1500ns
parameter AFTER_SH = ON_SH + 1;
parameter PRE_LIGHT_SHILD = AFTER_SH + 12;
parameter LIGHT_SHILD = PRE_LIGHT_SHILD + 16;
parameter AFTER_LIGHT_SHILD = LIGHT_SHILD + 3;
parameter SIGNAL_OUT = AFTER_LIGHT_SHILD + 2048;
parameter AFTER_SIGNAL = SIGNAL_OUT + 7;
parameter TEST_SIGNAL = AFTER_SIGNAL + 1;
    
    
ccd的初始化时间,利用1ms和状态机进行切换    
assign idl2s1_start  = state_c==IDLE && end_cnt_1ms;
assign s12s2_start = state_c==S1 && end_cnt_1ms;
assign s22s3_start  = state_c==S2 && end_cnt_1ms;
assign s32s4_start  = state_c==S3 && end_cnt_1ms;
assign s42s5_start  = state_c==S4 && end_cnt_1ms;
    
ccd在一个周期中使用的电平,是通过分小块满足并且满足大条件才触发,这样就对应了在一个周期上的电平变换
assign ccd_cp_en =    (cnt_cell >= TIME_CELL/4   && cnt_cell < TIME_CELL/2 - 1 ) && (cnt_sample < PRE_SH || cnt_sample >= ON_SH) && flag_sample == 1;
assign adc_cds_clk1 = (cnt_cell >= TIME_CELL/4   && cnt_cell < TIME_CELL*3/8) && (cnt_sample >= ON_SH) && flag_sample == 1;
assign adc_cds_clk2 = (cnt_cell >= TIME_CELL*6/8 && cnt_cell < TIME_CELL*7/8) && (cnt_sample >= ON_SH) && flag_sample == 1;
assign adc_clk =      (cnt_cell >= TIME_CELL*7/8 || cnt_cell < TIME_CELL*2/8) && (cnt_sample > ON_SH) && flag_sample == 1;

基准时钟1微秒
//1us产生的信号
always @(posedge clk_100M or negedge rst_n)
begin
    if(!rst_n)
    begin
        cnt_1us <= 0;
    end
    else if(add_cnt_1us)
    begin
        if(end_cnt_1us)
            cnt_1us <= 0;
        else
            cnt_1us <= cnt_1us + 1;
    end
end
assign add_cnt_1us = end_cnt_300ms;
assign end_cnt_1us = add_cnt_1us && cnt_1us == 100 - 1;

sdram部分:
可读条件,68013有空并且sdram中有数据
if(in_usb_en == 1 && fifo_have_data ==1)
                can_read_sdram <= 1;
可写条件,ccd产生一个新数据给的信号

总结:其实最难的不是每一个部分,而是联调费时间,各种小问题,关键是没有好的调试手段

(五)CCD传感器1000帧fpga-68013-usb2.0传输:verilog程序部分quartus编译相关推荐

  1. (二)CCD传感器1000帧(可调)采集,fpga主控,sdram存储 68013usb2.0传输到上位机保存显示:fpga逻辑程序

    fpga这部分是花了大部分时间调试的,总结出来:比较难调试,调试方式单一 概述 fpga控制ccd传感器和ad转换芯片,从而获得ccd上所有阵列的电压数据,之后将数据存储在sdram中,然后控制680 ...

  2. (一)CCD传感器1000帧(可调)采集,fpga主控,sdram存储 68013usb2.0传输到上位机保存显示:项目介绍

    这是一个关于ccd图像采集到上位机的项目,从设计pcb到开发上位机,开发了很久.期间遇到了各种大大小小的坑,特此记录一下. 功能说明: 自己设置的帧率,通过上位机下发到fpga中,fpga控制ccd采 ...

  3. (四)CCD传感器1000帧fpga-68013-usb2.0传输:实际测试数据

    测试数据部分 1产生数据: 由于fpga采用的是verilog硬件语言,只要ccd那里时序没问题,数据一定是可靠的. 当然了,如果硬件上有干扰另当别论,在实际测试时候,由于供电的纹波以及高频振荡,偶尔 ...

  4. (六)CCD传感器1000帧fpga-68013-usb2.0传输:上位机MFC的c++部分

    我是在cypress例程上改的,具体加入了下发数据和解析上传的数据 图中圈出来的地方是对应的显示操作的地方 以下是按了start后,就这样下发AAAA的数据后跟着frame_number这个从界面输入 ...

  5. 基于FPGA的USB2.0数据传输(通过本文可以自己设计USB2.0模块)

    文章部分内容参考了相关论坛中的内容: 对文章中内容感兴趣或者有不懂的可以咨询QQ:2859340499 B站对应讲解本文视频链接 首先来说一下USB这个大家都知道的东西吧: USB通用串行总线,是应用 ...

  6. (完结项目)fpga采集双路CCD摄像头1000帧图像上传到上位机显示

    基于FPGA飓风4代的线阵CCD实时图像采集系统 系统采用线阵CCD TCD2252D作为图像传感器,使用CCD专用信号处理芯片AD9822(14bit)处理CCD传输过来的信号数据,将数据存在SDR ...

  7. altera fpga 型号说明_基于FPGA的USB2.0接口通信

    欢迎FPGA工程师加入官方微信技术群 点击蓝字关注我们FPGA之家-中国最好最大的FPGA纯工程师社群 概述 本文主要介绍一种基于FPGA的FT232H接口通信开发方案.传统的USB通信开发对工程人员 ...

  8. 基于FPGA实现USB2.0接口方案设计

    1 USB2.0简介 USB2.0因其数据传输速率快和接口的多样化而广泛使用.USB 2.0 已经广泛使用于个人电脑中.USB2.0优势如下: 1)速度快,在高速块传输,最大数据字段的模式下,最高可以 ...

  9. FPGA和usb2.0 CY7C68013通信实现bulkloop

    步骤 具体的FPGA代码 具体的usb固件程序和驱动 首先安装usb2.0芯片的电脑驱动,CySuiteUSB_3_4_7_B204.exe: win10下禁用系统签名,设置-更新和安全-恢复-高级启 ...

最新文章

  1. 大道至简:算法工程师炼丹Trick手册
  2. 广州企业“掘金”物联网蓝海
  3. 集合框架中的接口及其实现类
  4. FPGA(1)--VHDL--6选1数据选择器
  5. dos 操作mysql_dos命令操作数据库
  6. Docker安装RabbitMQ教程
  7. python 词云 fontpath_Python酷炫词云图原来可以这么玩?
  8. 【大数据部落】IBM SPSS Modeler通过数据挖掘我们能从股市数据得到什么
  9. 判断一个正整数是否为2的整数次幂的宏定义
  10. Androidstudio setting .DEX extension only for .CLASS files
  11. 自动驾驶技术(5)视觉与激光雷达对比
  12. 计算机硬件配件怎么查,如何查看计算机主板型号?主板型号在哪里[方法]
  13. java登录界面圆形头像_Bootstrap实现圆角、圆形头像和响应式图片
  14. 微信二次开发资源整理
  15. 爱快固件是Linux系统吗,Linux 系统下 VirtualBox 里安装爱快系统 (2.4.4)
  16. linux下制作linux系统的安装U盘
  17. 70道关于JavaScript的常见面试题解答
  18. 50M/s, Onedrive直链提取-IDM实现满速下载
  19. BCG网格控件单独设置颜色
  20. Ansys Maxwell 电学仿真

热门文章

  1. 关于三角函数,反三角函数的详细解释
  2. unraid 下 nextcloud 的偏保姆级搭建教程
  3. Linux·主流嵌入式操作系统(RTOS)
  4. 某企业产品成本核算中直接材料凭证流
  5. 判断ios/android设备;判断页面是否在微信中打开
  6. 深度学习 强化学习 迁移学习
  7. QuartusII 13.0.1添加cpld库方法
  8. soj1080生化危机三
  9. 牛血清白蛋白(BSA)在生化实验中的作用
  10. 矩阵奇异值分解与照片压缩、去噪