野火征途pro
project for myself study
核桃_warrior
FPGA,VERILOG,C,C51
展开
-
FPGA project : sdram
设计并实现一个 SDRAM 数据读写控制器,使用 PC 机通过串口向 SDRAM 写入 10 字节数据,并将写入的 10 字节数据读出,通过串口回传至 PC 机,在串口助手上位机上打印显示回传数据。原创 2023-10-21 21:50:18 · 1071 阅读 · 0 评论 -
FPGA project : IIC_wr_eeprom
在scl为高时,若sda变化,则为起始或终止信号。在scl为低时,(已启动读时隙),sda在scl低电平变化,高电平对sda采样。读时序:分为随机读(单字节读)和顺序读(页读)。写时序:单字节写和页写。原创 2023-10-19 19:57:56 · 705 阅读 · 0 评论 -
阶段性总结
通用异步收发器 UART(Universal Asynchronous Receiver/Transmitter),是一种串行、异步、全双工的通信协议,将所需传输的数据一位接一位地传输,在UART通讯协议中信号线上的状态位高电平代表’1’,低电平代表’0’。根据SCK的相位(sc_n==0)时(传输数据时),是奇数or偶数沿采样。先定个小目标,在保质保量的前提下完成剩下的实验,争取在月末学完。慢一点没关系,最重要的是理解清楚,清晰的认识硬件,认识时序。看手册,主要看时序图,流程图,指令介绍。原创 2023-10-16 21:13:43 · 283 阅读 · 0 评论 -
FPGA project : flash_continue_write
本实验学习了通过spi通信协议,驱动flash;完成连续写操作。原创 2023-10-16 18:11:54 · 493 阅读 · 0 评论 -
FPGA project : flash_write
在之前扇区擦除的代码上改改就行了。加一个功能就是传入数据大于256个时候,mosi一直拉高。本实验:先传写指令,然后进入写锁存周期,然后传页编程指令,+3个地址;因为其他代码和扇区擦除指令是一样的。在写之前要先进行擦除(全擦除和页擦除);然后传数据,奇数传55,偶数传aa。flash的页编程指令pp。原创 2023-10-15 17:32:20 · 433 阅读 · 0 评论 -
FPGA project : flash_secter_erase
flash的指定扇区擦除实验。先发写指令,再进入写锁存周期等待500ns,进入写扇区擦除指令,然后写扇区地址,页地址,字节地址。即可完成扇区擦除。原创 2023-10-13 19:44:45 · 1266 阅读 · 0 评论 -
FPGA project : flash_read
接收数据:比如接收8bit的串行数据,通过miso传递。1,先接收高位。那么通过data保存miso传递的数据,把串行数据,转换为并行数据。有两种常用写法:或者或者:写一个cnt_bit,记录保存到第几bit。2,先接收低位。原创 2023-10-13 20:01:27 · 563 阅读 · 0 评论 -
FPGA project : flash_erasure
公司提出的一种同步串行接口技术,是一种高速、全双工、同步通信总线,在芯片中只占用四根管脚用来控制及数据。先往板子上固化一个流水灯程序,也就是把生成的.jic文件,写进flash。spi通讯协议有四种模式:模式0和模式3,从设备在sck上升沿采样。重启开发板,流水灯正常工作,说明程序写进了flash。模式0和模式1,在cs_n==1时,sck==0。模式2和模式3,在cs_n==1时,sck==1。,串行外围设备接口)通讯协议,是。模式1和模式2在时钟下降沿采样。比较常用的就是模式0和模式3。原创 2023-10-10 23:16:19 · 445 阅读 · 0 评论 -
FPGA project : sobel
算出来的Gxy与一个数据T比较大小,大于T则b2像素点赋值为黑色,小于赋值白色。想要沉浸式写代码,就要清清楚楚的画好时序图。在写代码之前就应该想清楚用到的每个信号的时序图应该是什么样的。fpga开发一大部分时间花在整体(顶层)设计上,一部分时间花在如何把想法转换为Verilog语言,一部分时间花在仿真调试上。我认为最重要的就是整体设计,以及画好时序图。或者有流程图或者相关的辅助你把想法转换为代码的图。原创 2023-10-09 21:24:35 · 324 阅读 · 0 评论 -
FPGA project : FIFO_SUM
在fifo2的写使能拉高后,fifo1的写使能拉高,然后把fifo2此时读出的数据写进fifo1(就是对fifo2读出的数采样)至于为什么fifo1的写使能拉高是在fifo2写使能拉高后。3,第一列的数据传给FIFO1,第二列的数据传给fifo2,第三列的数据到来后,fifo的读使能拉高(fifo1和2公用一个读使能信号)。2,其实这个行与列计数器,就像状态机。在读使能拉高后,fifo2的写使能拉高,然后把第三列的数据写进fifo2;每一行,对应列,相关信号变化是一样的,也就是说和行数没有关系。原创 2023-10-07 16:33:17 · 310 阅读 · 0 评论 -
FPGA project : fifo_sum
第一行存进fifo1,第二行存进fifo2.当输入第三行第一个数据的时候,从fifo1和ffo2中读数据,并于当前输入数据相加,并输出结果与标志信号。2,数据与标志信号在设计的时候,要注意时序上的对齐。这种小工程,仿真时,时序没问题没问题,上板子后出错,我觉得应该不是时序上的问题(亚稳态)。3,大于2的数字,尽量用参数parameter定义。1,这个fifo,读写信号同时拉高,我进行功能仿真时,它是写满后,同时拉高,讲写不尽数据。所以我设计的时序图,fifo1和fifo2都是先读出数据,然后再写数据。原创 2023-10-06 23:11:14 · 355 阅读 · 0 评论 -
FPGA project : TFT_LCD
显示器具有功耗低、体积小、承载的信息量大及不伤眼的优点,因而它成为了现在的主流电子显示设备,其中包括电视、电脑显示器、手机屏幕及各种嵌入式设备的显示器。有效图像,与行场同步信号时序上要对齐。需要对行场同步信号打一拍,或者直接使用时序逻辑赋值。在时序图上有更直观的说明。驱动TFT_LCD显示十色彩条。原创 2023-10-03 18:12:34 · 660 阅读 · 0 评论 -
FPGA project :HDMI
1在本实验与官方的编码模块代码,那么在通过功能方正,验证自己编写的编码模块代码是否正确时,可以把官方的模块例化进工程,然后仿真对比波形是否一致,即可判断自己编写的代码是否正确。先不要着急看去检查哪些信号会直接影响这个输出信号赋值,因为前面的一些信号,会间接影响输出信号赋值。1注意数据与解析数据的信号(比如传入的数据中0或者1的个数),要在时序上与数据进行对齐。那么此时应该先检查一些直接受输入信号影响的信号,是否正确,是否和官方给的代码波形一致;3实在检查不出来,看看自己的代码和官方的代码编写的差在哪里。原创 2023-10-02 18:04:58 · 488 阅读 · 0 评论 -
FPGA project : uart232_ram_vga
1,代码设计中,一些大于10的数字,尽量用parameter设定一些可以重传的参数来代替。读数据:在时钟上升沿,读使能拉高,与此同时给出地址,然后数据就都出来了。值得一提的是,数据会滞后一个时钟周期(相对于读使能与地址),说明ram内部用的时序逻辑嘛。写数据:在时钟上升沿,写使能拉高,与此同时要有对应的地址与数据。其实signal port ram,它的输入口和输出口分别用不同的时钟,也可以解决这个问题。2,在vga_pic模块中模拟产生的ram,读完数据后,ram里面的数据并没有消失,还在。原创 2023-09-26 18:35:36 · 593 阅读 · 0 评论 -
FPGA project : rom_vga_jump
只有vga_pix 模块代码与rom_vga不同,所以只上传了这个模块的代码与仿真代码。原创 2023-09-24 23:54:21 · 358 阅读 · 0 评论 -
FPGA project : ROM_VGA
所以还要把“数据输出信号”提前一个时钟周期的同时,把输出信号的采样点也提前一个时钟周期,这样输出信号才能完全和坐标对齐。尤其输出信号用reg,对某个“数据输出信号”采样。虽然“数据输出信号”和坐标对齐了。在之前彩条显示工程中增添一个rom模块,在中心显示100 X 100 的一个图像。读数据拉高,并输入地址。如果输出口不加reg寄存一下,数据只会滞后一个时钟周期输出(相对于读使能)。在设计这个实验中,还重点考察了,坐标与数据,在时序上要对齐。但是真正要输出的信号,还是滞后了一个时钟周期(相对于坐标)。原创 2023-09-24 17:09:04 · 228 阅读 · 0 评论 -
FPGA project : HCSR04
1,由于使用cnt_base 做echo回响信号高电平时间的测量,它的数据应该很大,位宽也很大。因为这个add_cnt_base信号是我写代码时后加上去的,没有画它的时序图。这样循环往复,每次触发变化的时间,是几乎可以忽略不计的。一旦敏感变量触发组合电路的赋值,便会不断地,触发--赋值--触发---赋值。具体,就是避免在敏感变量A所触发的逻辑块中,再次对敏感变量A进行赋值操作。作为敏感变量,只要变化,就会触发组合逻辑块的赋值,而赋值又会立马让敏感变量变化,然后再触发组合逻辑块赋值。原创 2023-09-23 22:46:12 · 207 阅读 · 0 评论 -
FPGA project : DS18B20
所以用产生一个1us base基础计时器,产生一个1us的标志信号。之后的计数器与该计数器级联,记得把<end_cnt_base>这个标志信号加上。1:在画时序图是,没有画<end_cnt_base>标志信号,直接默认时钟为周期为1us,造成了混乱。由于第二次写代码没画时序图,所以代码和时序图一些参数有些不一致,但问题不大。4:读取温度时,少记一位。注意data_bit跳转条件,和发指令时不一样的。4:数据位宽定义错误,因为少思考了一个数据对应的位宽。1:关于状态机的编写,我觉得还是三段式比较好。原创 2023-09-21 23:59:44 · 341 阅读 · 0 评论 -
FPGA project : inf_rcv
【代码】FPGA project : inf_rcv。原创 2023-09-19 16:15:36 · 330 阅读 · 0 评论 -
FPGA project : volt
【代码】FPGA project : volt。原创 2023-09-18 17:00:12 · 308 阅读 · 0 评论 -
FPGA project : dht11 温湿度传感器
其他模块都是之前的,就不发了。没有硬件,过几天上板测试。原创 2023-09-17 23:10:19 · 432 阅读 · 0 评论 -
FPGA project :dds
【代码】FPGA project :dds。原创 2023-09-16 21:42:24 · 438 阅读 · 0 评论 -
FPGA project : frequency_measure
数码管模块,就是之前工程里的。原创 2023-09-16 01:09:58 · 377 阅读 · 0 评论 -
FPGA project: uart_rs485
没有设计rs485的顶层,因为我的另一块板子没有TTL信号转差分信号的芯片:MAX3485CSA。原创 2023-09-14 19:49:40 · 477 阅读 · 0 评论 -
FPGA project : usrt_rs232
【代码】FPGA project : usrt_rs232。原创 2023-09-12 21:43:03 · 296 阅读 · 0 评论 -
FPGA projet : VGA
赋值 always @(poseedge vga_clk)begin。注意存储器类型变量的定义:reg 【宽度】<名称>【深度】相比于上个工程,只需要修改 vga_pix 模块即可。在vga屏幕上显示 : 野火科技。使用 <名称>【深度】【宽度】为每一行赋值,不可位赋值。原创 2023-09-11 21:48:09 · 246 阅读 · 0 评论 -
FPGA project : VGA
虽然横坐标看上去多了一个,但是vga_valid 和cnt_h (144 ~ 783)对齐了,那就是对的。要让vga_rgb 和vga_valid时序对齐。还差一个模块,明天写。原创 2023-09-11 00:32:42 · 565 阅读 · 0 评论 -
FPGA project : example_fifo
【代码】FPGA project : example_fifo。原创 2023-09-09 21:30:33 · 69 阅读 · 0 评论 -
FPGA project : example_ram
其他模块代码同example_rom。原创 2023-09-09 02:45:41 · 163 阅读 · 0 评论 -
FPGA project : example_rom
控制模块波形:(其他模块只复用)原创 2023-09-07 23:25:08 · 163 阅读 · 0 评论 -
FPGA project : example_ip
【代码】FPGA project : example_ip。原创 2023-09-07 15:35:07 · 52 阅读 · 0 评论 -
FPGA project : seg_595
【代码】FPGA project : seg_595。原创 2023-09-04 18:38:54 · 177 阅读 · 0 评论 -
FPGA project : seg_595_static
【代码】FPGA project : seg_595_static。原创 2023-09-02 23:52:26 · 63 阅读 · 0 评论 -
FPGA project : beep
【代码】FPGA project : beep。原创 2023-09-02 00:16:06 · 160 阅读 · 0 评论 -
FPGA project : complex_fsm
【代码】FPGA project : complex_fsm。原创 2023-09-01 00:13:33 · 49 阅读 · 0 评论 -
FPGA project : complex_fsm
【代码】FPGA project : complex_fsm。原创 2023-08-31 15:09:06 · 48 阅读 · 0 评论 -
FPGA project : simple fsm
【代码】FPGA project : simple fsm。原创 2023-08-30 11:40:43 · 51 阅读 · 0 评论 -
FPGA project : breath_led
【代码】FPGA project : breath_led。原创 2023-08-29 17:13:55 · 40 阅读 · 0 评论 -
FPGA project : water_led
【代码】FPGA project : water_led。原创 2023-08-28 19:06:06 · 116 阅读 · 1 评论 -
FPGA project : cap_key
【代码】FPGA project : cap_key。原创 2023-08-28 09:29:16 · 111 阅读 · 1 评论