- 博客(46)
- 收藏
- 关注
原创 FPGA学习篇——Verilog学习之寄存器的实现
这里在常见的寄存器种加了一个复位信号sys_rst_n。(1)同步复位:即复位信号和时钟信号同步,只有当复位信号有效且时钟的上升沿时两个条件均满足,输出out才会清零;同步复位信号释放时,同样,只有当复位信号释放且时钟的上升沿时两个条件均满足,输出out才会不受复位信号控制。(2)异步复位:即复位时,复位信号与时钟信号无关,只需满足复位信号有效输出out就会清零;
2025-03-27 21:37:06
1072
原创 FPGA学习篇——Verilog学习特别篇1(代码编写篇)
这里主要记录我在代码编写过程中遇到的错误或者代码编写的格式问题:当使用always等结构语句,当里面有多个执行语句时,我们可以用begin...end括起来。这里 一个完整的case...endcase 算一个执行语句,故可不用begin...end,如以下例子编译无误。如图,多个input同类型端口可一起定义:想要画出这种输出不是单一波形,而是存储的数据的,如图:当输入为000时,输出为00000001。要在仿真文件和子模块中的输出都必须为reg类型。如下:左图为仿真模块。右图为子模块。 在某些结构内,执
2025-03-27 15:14:07
408
原创 FPGA学习篇——Verilog学习特别篇1(实现功能篇)
这里主要记录一些我学到的用Verilog语言实现功能的编写思路(后续可能会不定时更新)。
2025-03-09 18:56:30
484
原创 FPGA学习篇——Verilog学习5(reg,wire区分及模块例化)
这个我找了一些网上的各种资料,大概说一下自己的理解,可能还不太到位...比如:initial语句我们常用于赋初值,那么,传进来的输入数据就需要暂时存放赋初值,之后才能进行电平的变化,因此,要用reg。而在任意一个模块输入时,追求一个真实性,需要实时的传输数据,故则用一个wire类型。该图引用于博主“数码逐渐远去”原文链接:https://blog.youkuaiyun.com/kofiliu2018/article/details/128260502。
2025-03-08 19:51:23
1153
原创 FPGA学习篇——Verilog学习4(常见语句)
initial 语句它在模块中,而always语句则不断重复执行,以下是一个比较好解释的图:(图片来源于知乎博主罗成,画的很好很直观!initial 语句它在模块中。它常用于测试文件的编写,用来产生仿真测试信号(激励信号),或者用于对存储器变量赋初值。PS:当initial与语句内只有一个执行语句时,可以省略begin..end。always 语句,但是只有和一定的时间控制结合在一起才有作用。敏感列表PS:敏感列表即触发always语句执行的条件,多个触发条件用or连接。
2025-03-05 15:30:54
1452
原创 FPGA学习篇——Verilog学习3(关键字+注释方法+程序基本框架)
以上两个例子,总结出Verilog程序框架的一些特点吧。每个Verilog程序包括4个主要的部分端口定义IO说明内部信号声明逻辑功能定义。IO说明默认端口是wire类型,如果要改成reg类型,要写出来(如例子2程序中的output定义。逻辑功能定义可多个,且多个逻辑功能是并行的,即例子2中的两个always逻辑功能段谁前谁后无所谓,是同时编译完成逻辑功能的,这和C语言不一样,C语言要强调顺序问题。另外逻辑功能定义部分有三种方法。1、assign语句描述组合逻辑。
2025-03-04 16:41:56
855
原创 FPGA学习篇——Verilog学习2(常见系统函数)
主要是 if...else 和 case 语句,使用方法同C语言大致一致。1.1 if语句1.2 case语句2 系统函数Verilog 语言中预先定义了一些任务和函数,用于完成一些特殊的功能,它们被称为系统任务和系统函数,这些函数的,使我们更方便的进行验证。2.1 时间预编译指令及延时决定时间相关量的精度及仿真显示的最小刻度。
2025-03-03 20:13:26
883
原创 CAN总线通信协议学习5——数据链路层之错误处理机制
其实没有这个错误处理机制CAN总线也能实现完整的收发操作,但CAN总线发生错误时有一定的处理机制会比较好。
2025-03-03 14:36:19
1219
原创 CAN总线通信协议学习4——数据链路层之仲裁规则
CAN总线只有一对差分信号线,同一时间只能有一个设备操作总线发送数据若多个设备同时有发送需求,该如何分配总线资源?制定资源分配规则,依次满足多个设备的发送需求,确保同一时间只有一个设备操作总线(因为以下“先占先得”部分的图为例,若两个设备同时发,之前提到了0强于1的原则,那么如果出现0和1则在总线上只能传输0,则本来要发的1就被破坏了)。这一节可以理解为CAN总线如何处理多个设备有发送需求时的情况。CAN总线规定的仲裁情况有两种:先占先得和非破坏性仲裁。
2025-03-02 21:06:56
765
原创 CAN总线通信协议学习3——数据链路层之位同步
发送方传输数据到CAN总线上,接收方采样输出的数据从而得到数据。首先在讲位同步的方法时,先引出一个位时序的概念。
2025-03-02 18:01:12
894
原创 CAN总线通信协议学习2——数据链路层之帧格式
帧格式可理解为定义了传输的数据(叫报文),也为后续设定一些规则如错误检查机制提供了思路。:CAN总线任意一个设备可当收也可当发CAN其中一个设备其不断地发送报文到总线上,连接到总线上的其他设备“想收就收”。CAN中哪个设备有收数据的需求,向发数据方发送一个请求,发数据方收到请求后,才发送报文到总线上。。代表每一段对应的所占的位数,不是点电平逻辑!(黑色粗线才是逻辑电平)看图的最底下,无论是标准格式还是扩展格式,灰色代表逻辑0,白色代表逻辑1,紫色代表可0可1,
2025-03-02 12:18:10
914
原创 CAN总线通信协议学习1——物理层
首先来看看CAN是怎么产生的:简单理解,CAN就是一种“拥有特别连接方式”的数据传输的总线,其有特定的一些规则。(注:资料及图片来源于知乎博主TOMOCAT。
2025-02-28 17:13:58
439
原创 FPGA学习篇——Verilog学习1(基础语法)
这张图比较重要以及陌生的应该是高阻态Z,他是一个未知值,不一定为高也不一定为低电平,X是只能高电平和低电平中二选一。 进制有常见的二进制(b)、八进制(o)、十进制(d)、十六进制(h)。 十进制就是我们日常生活常用的阿拉伯数字0~9,而计算机中主要存储的是二进制,所以主要是二进制与十进制的转换,而八进制和十六进制可以先转换为二进制,进而转换为10进制。(1)二进制十进制:加权求和(2)十进制二进制:不断除2取余,逆序排列 八进制代表数字0~7,对应的是二进制加权系
2025-02-05 16:52:46
1013
原创 FPGA学习篇——开篇之作
由上图,早期的数字集成电路是不可编程的器件,意思就是一个器件生产出来的功能就是确定的,比如一个流水灯,你就只能将这个器件作为流水灯使用,而不能作为时钟。为了使器件更加灵活,则创造出了PLD,这个数字集成电路就可通过编程来改变功能,即它可以作为流水灯也可以作为时钟,就看你的编程情况。PLD常见的可编程器件有CPLD和FPGA。两者的区别是硬件电路结构的不同,在编程(即软件方面)是几乎一致的。所以FPGA可理解为可编程的用于数字系统设计的器件。
2025-02-03 16:17:28
609
原创 蓝桥杯单片机之PCF8591的使用
!蓝桥杯电子类单片机学习三——PCF8591 AD/DA转化器,AT24C02 EEPROM存储器(iic驱动)_蓝桥杯da转换输出的是什么-优快云博客。
2024-04-09 19:22:19
1647
1
原创 蓝桥杯单片机真题实践篇
这里就不完全写思路过程代码什么的,这一篇文章就写我在训练真题中遇到的过程。(呜呜呜,时间不够辣,能做多少算多少吧....)
2024-04-05 21:49:13
562
1
原创 NO12 蓝桥杯单片机之DS1302的使用
比如:当选择日历时钟给模式。读寄存器的第一个地址为81H, BIT7=1,BIT6=0,BIT5~BIT1=0,读操作故BIT0=1,即1000 0001,写成16进制为81H写寄存器的第一个地址为80H,BIT7=1,BIT6=0,BIT5~BIT1=0,写操作故BIT0=0,即1000 0000,写成16进制为80H。读寄存器的第二个地址为83H, BIT7=1,BIT6=0,BIT5~BIT2=0,BIT1=1,读操作故BIT0=1,即1000 0001,写成16进制为83H。
2024-03-29 19:57:35
1594
原创 NO9 蓝桥杯单片机串口通信之进阶版
串口通信的代码编写结构还是与中断一样,不同的是:初始中断函数条件涉及到串口通信相关的寄存器和定时器1相关的寄存器(定时器1用于产生波特率),但初始条件中的中断寄存器只考虑串口通信而不考虑定时器1。void 函数名()包含两部分寄存器:定时器1+串口通信定时器1: TMOD (选择模式),TH1和TL1(初始计时寄存器),TR1(TCON寄存器里的启动计时按钮)串口通信:SCON(总的来说功能是模式选择),AUXR(辅助寄存器),中断开关(分开关+总开关)
2024-03-25 08:22:20
767
原创 No10 蓝桥杯单片机实践之IO拓展技术与存储器映射拓展()
IO拓展技术与存储器映射拓展就是把原来用HC138译码器选择位控制LED灯,蜂鸣器,数码管改成了对这几个模块各自分配地址然后直接赋值执行操作。公式为:XBYTE[对应地址] = 0x...
2024-03-20 23:59:28
198
原创 NO9 蓝桥杯单片机实践之串口通信的使用
虽然在中断中不用判断发送,但是还是要写一个发送函数来传给单片机,然后接收出来让我们看看是否嗯那个完成接收工作。注意:上代码前在检查是否把跳帽换到MM模式!!!!还有因为任务是产生9600的波特率,因此串口收发助手的波特率记得调到9600!!
2024-03-20 23:43:30
1237
原创 NO9 蓝桥杯单片机之串口通信的使用
简单来说,串口通信是一种按位(bit)传输数据的通信方式。其他一些知识就直接贴图吧(单工,半双工这些学过通信的同学应该都知道,可以上网查询一下具体概念。与之前学习中断定时一样,串口通信也是与寄存器有关的,以下以串行口1为例来讲解。各个位的功能可以去查看手册,手册写的比较详细,这里就贴老师的简便图方便记忆了。这里要说一下,RB8和TB8的解释和蓝桥杯单片机的数据手册有点不一样,以下贴出蓝桥杯手册对这两位的解释(注意方式1时不使用)。
2024-03-14 21:49:19
1611
1
原创 NO8 蓝桥杯单片机之PWM的使用
首先要知道两个概念:PWM指的是脉宽调制,因此其形象化的表示应该是脉冲图像,这里主要以矩形脉冲为例。(1)周期周期很容易理解,重复的最小单位。如图,画出了两个不同占空比的脉冲的各自1个周期。(2)占空比一个脉冲周期按照定义应该很好理解。如下图,第一个占空比为0,所以每个周期都是低电平;第二个占空比为25%,在一个周期内,高电平占了25%,低电平占了75%。(3) 计算PWM的周期周期的公式就是:比如PWM脉冲的频率为100HZ,那么T=0.01s=10ms。
2024-03-13 19:22:03
590
原创 No7 蓝桥杯单片机实践之定时器的应用
程序编写结构还是中断函数结构的写法,只是由于定时器涉及的寄存器较多,中断初始条件函数中条件也就随之增多。void 函数名()主要写一些初始化变量。(基本的就是3.1~3.5所涉及的寄存器的初值条件设定)void 函数名() interrupt 中断号就是写时间到后执行什么。(但是为了中断的实时性,有时只写只写中断状态的标志,紧急事件用另一个函数来写,后续实践篇代码有讲)别忘了还要查看对应的中断号高低位寄存器TMOD寄存器中断寄存器TCON寄存器2 实践2.1 任务。
2024-03-13 14:52:49
953
原创 No6 蓝桥杯实践之中断程序的使用
中断程序代码由两部分组成:中断初始化函数+中断服务函数void 函数名()中断初始化函数主要写一些中断程序的初始化变量。void 函数名() interrupt 中断号中断服务函数就是写中断执行什么,即紧急事件是什么。(但是为了中断的实时性,有时只写只写中断状态的标志,紧急事件用另一个函数来写,后续实践篇代码有讲)(1)选择触发类型。(有的中断源只有一种类型不需要选择)(2)控制开关和总开关闭合。
2024-03-09 12:09:37
425
1
原创 NO5 蓝桥杯实践之矩阵键盘的使用(或许是一篇求助帖...)
然后就利用两个for循环对矩阵键盘进行扫描,外循环对矩阵进行行扫描,内循环对矩阵进行列扫描,当满足行和列端口同时为0时,数码管就输出对应的数字。视频中老师的思路写的代码过长,所以我想了个自己的思路,我的思路是首先将矩阵键盘的。
2024-03-09 00:24:19
419
1
原创 NO 5 蓝桥杯单片机之矩阵键盘
严格意义上来说,如图所示,红色部分为独立按键,蓝色部分为矩阵键盘。两者之间的区别主要是结构上的不同:(1) 独立按键:由图可以看到四个独立按键的,如下图上半部分。(I/O端口可简单理解为一个接口即可),如下图下半部分。
2024-03-08 13:10:38
547
1
原创 NO3 蓝桥杯单片机实践之数码管静态显示
数码管静态显示涉及的各部分如下:两个M74HC573、74HC138和或非门的功能在NO1和NO2篇章都详细讲过,这里不再赘述。数码管的工作原理详情见上一篇。这里有两个新的原件需要解释一下:1. 可以看到经M74HC573锁存器 再到以下器件 再连接数码管的“段选”,以下各路都为电阻,只起到限流作用,故也可2. 查阅资料知以下是两个8*8的LED显示点阵,起到数码管的显示作用,
2024-03-02 15:33:12
1172
原创 NO 3 蓝桥杯单片机之数码管
一般的单片机的数码管都分成,每个“小块”里面有,而每个”数字“又由组成。“两块”:一块内的“四个数字”每个数字由“8段”二极管组成(a,b,c,d,e,f,g,dp)
2024-03-02 11:53:50
631
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人