随笔分类 -  2023前的博客 / FPGA

用于学习FPGA的所有实践
摘要:SCCB协议 1、协议内容 SCCB协议常用于vo系列的摄像头的寄存器配置中,是有IIC协议演变而来。本来,本人接触这个协议也是想配置摄像头用于摄像模块。但是,由于配置寄存器实在是太多,而且需要找的资料也比较多,就放弃了,以后有时间再去完成吧。现在先将SCCB协议的设计过程记录下来,方便以后查找。 阅读全文

posted @ 2020-06-01 20:59 绿叶落秋风 阅读(1064) 评论(0) 推荐(0)

摘要:modelsim波形仿真的新手问题 1、实验目的 在刚接触modelsim时,被其繁复的操作流程所困,一度只能依靠在quartus中修改代码编译后再重启modelsim,自动导入才能得到波形。这样的操作最大的问题就是修改代码的成本巨大。每次更新波形的时间在5分钟左右。为此,通过不断地学习,终于将波形 阅读全文

posted @ 2020-05-28 15:43 绿叶落秋风 阅读(8116) 评论(0) 推荐(0)

摘要:ZYNQ读写实验(2) 1、实验原理 在TF卡读写实验1中,已经将每一个步骤都做完了,但是最后得到的结果是错误的。那个时候由于TF没有格式化,显示的是错误信息。在格式化后,再次实验,得到了预期的结果。此外,本人使用的开发板不具备SD卡的读写能力。 在这个基础上,通过在C语言的代码上进行修改,可以完成 阅读全文

posted @ 2020-05-26 16:48 绿叶落秋风 阅读(780) 评论(0) 推荐(0)

摘要:verilog之状态机设计 1、状态机的原理 状态机,就是基于状态变化而设计的硬件模块,是一种常见的设计思路。掌握状态机的使用,是初步建立复杂逻辑设计能力的开始。所谓的状态机,和高级语言程序的流程图十分类似,具有逐步执行,步步递进的特点。由于硬件的特殊性,一般的状态机都是闭环的,要求能够回到初始状态 阅读全文

posted @ 2020-05-25 23:46 绿叶落秋风 阅读(1753) 评论(0) 推荐(0)

摘要:SignalTap的使用 1、SignalTap的作用 SignalTap就是一个IP(对应xilinx的ila),可以将引脚的状态实时显示。这是基于板级的验证,可以有效处理一些仿真难以实现的波形测试。例如inout口的测试,使用仿真就比较困难,很难构建合适的测试工具。使用signaltap可以有效 阅读全文

posted @ 2020-05-24 15:54 绿叶落秋风 阅读(361) 评论(0) 推荐(0)

摘要:verilog之wire和reg 1、区别 wire为线,reg为寄存器。至少初期这两个名词的意思是这样的。wire在电路设计中指代的就是某个点的逻辑值,而reg则指代某个寄存器输出的逻辑值。这个理解可以覆盖大部分的使用。而不在这一范围内的就是使用always写组合逻辑。这时的reg具备的只有语法意 阅读全文

posted @ 2020-05-19 17:20 绿叶落秋风 阅读(3991) 评论(0) 推荐(0)

摘要:verilog锁存器和触发器 1、基本概念 锁存,就是输入信号变化时,输出不发生变化时,就是触发器或者锁存器。触发器的敏感信号是clk,即触发器是知道被延时了多少。对于锁存器来说,延时是不确定的。一般电平触发容易出现锁存器。电平相对输出的变化时间是不确定的。这也就是锁存器不推荐使用的原因。 2、设计 阅读全文

posted @ 2020-05-18 09:47 绿叶落秋风 阅读(1584) 评论(0) 推荐(0)

摘要:always和assign的作用 一、语法定义 assign,连续赋值。always,敏感赋值。连续赋值,就是无条件全等。敏感赋值,就是有条件相等。assign的对象是wire,always的对象是reg。这就是语法约束。 二、功能差异 assign对应电路下连线操作。always对应插入敏感控制连 阅读全文

posted @ 2020-05-18 09:03 绿叶落秋风 阅读(9583) 评论(0) 推荐(0)

摘要:verilog语法的基本结构 1、verilog的定义 verilog,一种硬件描述语言,致力于提高数字电路,尤其是大规模数字电路的描述规范。从描述就可以看出,这个语言和C不同,不是高级语言。但是,这个语言也不像汇编。其本身能够完成许多高级语言的功能,比如判断、计算、选择等操作。这就容易让人误以为这 阅读全文

posted @ 2020-05-16 16:26 绿叶落秋风 阅读(1584) 评论(0) 推荐(0)

摘要:TF卡读写实验 1、实验原理 开发板上自动带有TF卡外接接口,这里只需调用封装好的IP核即可实现该功能。当然,你还需要一个TF卡(感觉SD卡也可以,反正这两种卡差不多)。实验就是调用一个IP核,不涉及其他的设计,所以比较简单。 2、实验步骤 1)新建工程 file》new》project走一遍就可以 阅读全文

posted @ 2020-05-16 10:19 绿叶落秋风 阅读(1139) 评论(0) 推荐(0)

摘要:ZYNQ的自定义IP 1、实验原理 在vivado中可以将自己写的verilog模块封装成IP核,并入bd设计,有效地提高了PS到PL的设计内联能力。同时,这部分的学习可以将verilog的基础知识转移到嵌入式设计中。所以,这是一个基本的能力。 2、实验操作 一、创建工程 这一步根据自己的开发板选型 阅读全文

posted @ 2020-05-14 12:21 绿叶落秋风 阅读(1569) 评论(0) 推荐(0)

摘要:verilog语法 1、学习目标 verilog语法是数字电路的基础。好像大部分的数字电路工程师都需要在面试时回答相关问题,一些甚至需要对该块的知识进行机考。所以,这部分的知识需要明确的概念和结合数字电路的不断明确。这是一个比较重要的内容,必须对常见的语法具有相当详细的掌握。 2、学习要求 掌握所有 阅读全文

posted @ 2020-05-13 19:17 绿叶落秋风 阅读(401) 评论(0) 推荐(0)

摘要:基于quartus学习 1、学习目标 quartus是altera的FPGA设计软件,用起来的感觉要比xilinx快。这里可以使用其完成各种基本的设计(就是不使用非必须IP核),一些基础的实验都可以在这个上面完成。目标就是利用一块开发板,完成verilog语法部分的验证(这是另外一部分的学习,有时候 阅读全文

posted @ 2020-05-13 19:08 绿叶落秋风 阅读(826) 评论(0) 推荐(0)

摘要:GPIO实验 一、实验原理 调用GPIO实现PS对引脚的控制 二、实验步骤 1、建立工程 这部分是ivado的操作内容,这里不做过多说明。 2、添加ZYNQ处理器IP 在左侧菜单栏中双击Create Block Design(bd为文件),在跳出的Diagram界面添加IP核processing_s 阅读全文

posted @ 2020-05-12 15:48 绿叶落秋风 阅读(1667) 评论(0) 推荐(0)

摘要:modelsim常用操作 1、库的定义(library) modelsim是比较常用的仿真软件,主要用于数字电路的仿真,可以实现高效的前后仿真。仿真,就需要几个关键的元素:激励、设计模块、设计模块的约束平台。激励,就是电路的输入。设计模块就是设计好的电路。约束,就是电路实现的实际过程中所需的要求。( 阅读全文

posted @ 2020-05-12 10:25 绿叶落秋风 阅读(2448) 评论(0) 推荐(0)

摘要:ZYNQ学习系列之GPIO 一、GPIO含义 general purpose IO ,通用目标的IO。所谓通用,就是采用常用的电压标准和电流标准的控制器IO接口,可以初步理解为开发板上的IO口。这种接口是基本的接口,可以用于转化为其他种类的接口。 二、GPIO原理 ZYNQ7000中的IO共有5种板 阅读全文

posted @ 2020-05-09 21:10 绿叶落秋风 阅读(1112) 评论(0) 推荐(0)

摘要:一、ZYNQ7000简介 ZYNQ7000是xilinx推出的具有ARM内核的FPGA芯片,可用于常见SOC开发。基于此,通过学习ZYNQ7000的各种设置和开发,可以有效地提高对FPGA在SOC上的应用特点,为进一步使用FPGA实现相应的项目提供了基础。 阅读全文

posted @ 2020-05-07 10:11 绿叶落秋风 阅读(887) 评论(0) 推荐(0)