【札记】坚持
转眼间,一个月又快要过去了。
这一次写札记主要是因为下午看了罗翔老师和俞恩泰老师的探讨,具体的讨论的内容我已经忘掉了。但是,有一点我记得比较深。就是关于坚持的问题:
我总是会堕入一种所谓的安逸的状态,去重复做一些简单的事情。但是,到头来,这种东西并不是我想要的,这种廉价产生的多巴胺,只会让多巴胺更加廉价。在经历了这么多事情之后,其实有些方向和目标我已经找到了,但是这些东西太难坚持了,被我浅尝则止地中断了,取而代之的是更容易更让我成迷上瘾的另一些事情。
记得在大一的时候我就读到了村上春树的一篇文章,谈到他对长跑和写作的一些习惯。他说,他在做这两件事情的无论是哪一种时,都会选择不会超量的完成任务。遇到状态好的时候,他也不会选择去加班加点多做一些事情,而是适可而止。并且,在懈怠的时候,即使有利用去推演搪塞,也会坚持下去。我觉得这种生活方式才是比较理想的一种状态。
我是一个常常不知道何时去收手的一个人,一件事情开始固然很艰难,但是我想在合适的时机,停下来,去做另一件事情,也不是一件简单的事情。这种状态的保持许需要不断、不断地训练的。
我的生活好像就是在一个跷跷板上,不是倒向一边去向前,就是倒向 ...
【Verilog学习】-06-组合电路
这一章主要对组合逻辑电路的设计做了一个复习,前面也有比较多的涉及,因此下面仅记录一些关键点。
硬件设计思路
这里与软件的涉及不同,硬件设计主要是逆向的思考,即由想要的输出决定输入(assign ringer = ··· )。
Design hint: When designing circuits, one often has to think of the problem “backwards”, starting from the outputs then working backwards towards the inputs. This is often the opposite of how one would think about a (sequential, imperative) programming problem, where one would look at the inputs first then decide on an action (or output). For sequential programs, one would oft ...
【Verilog学习】-05-其他语法特性
三元运算符
与C一样,这是一些例子:
12345678910111213141516171819Examples:(0 ? 3 : 5) // This is 5 because the condition is false.(sel ? b : a) // A 2-to-1 multiplexer between a and b selected by sel.always @(posedge clk) // A T-flip-flop. q <= toggle ? ~q : q;always @(*) // State transition logic for a one-input FSM case (state) A: next = w ? B : A; B: next = w ? A : B; endcaseassign out = ena ? q : 1'bz; // A tri-state buffer((sel[1:0] == 2'h0) ? a : ...
【BC26】-00-数据传输
桌面和核心板的传输
按照教程接好电路后不出现返回信息的可能原因:
rx、tx接反
波特率等信息未严格按要求设置1. bode rate:115200 2. data bit:8 3. stop bit:1 4. 无校验位
UDP传输协议
这次把服务器弄好了,为了用这一个UDP的调试工具,把服务器的系统换成了Windows。但是,还是没有接受到数据,不知道是什么原因。这边显示了发送数据成功,但是服务器上并没有介绍到数据,不知道是那里的问题,感觉要不是指令的问题,要不就是云端的问题。这边的硬件应该是调试通了,明天再看看吧。
问题找到了,就是云端的问题。
步骤(BC26和阿里云平台通过UDP协议通讯)
将移远的BC26模块的串口用USB转TTL模块与电脑相连接(电脑上需要先安装CH340驱动和串口调试助手进行串口调试),此部分可参照创思的B站视频[^1]。注意串口的方向,自己试一下,有可能是串口方向不对导致与模块无法通信。
在测试完成本地没有问题之后,进行ALI云的设置。首先是创建一个ECS服务器,网上有很多的教程,用学生身份可以方便地注册一个[^2]。注意,注册的时候可以选择熟 ...
【CAG-SLAM】-02-项目总结
给关于这个小项目,里面涉及到的内容其实并不复杂,但是也花费了我两周的时间去完成和整理,可能在和学长的其他模块进行组合的时候还会出现一些其他的问题。总之,并不是一次特别满意的开发经历,但是我也在过程中,学习了很多项目之外的东西。正如我正是为了这点醋,包的这顿饺子。
以下是接口的定义,电路功能说明以及项目的源码:
接口定义
名称
方向
位宽 (bit)
描述
clk
in
1
时钟信号
din
in
8×8
8个8位数据输入
rst_n
in
1
低有效复位信号(清零所有寄存器)
valid_i
in
1
表示当前时刻输入为有效信号
flag
in
8
8位分别表示8个输入数据是否有效
addr_1
out
10
第一层24×24个数据中的最大值的行列(分别占5位)坐标
addr_2
out
10
第二层24×24个数据中的最大值的行列(分别占5位)坐标
valid_o
out
1
当前时刻输出的数据为有效数据
电路功能描述
输入一共为24×24×2个数据,每次输入8个数据,串行输入144组后,两个clk延迟后,输出两层的最大值坐标信息(此时 ...
【杂七杂八】-00-资源链接
常用链接
PDF Drive - Search and download PDF files for free.
BookVoo - PDF files are free to download.
其他
VScode配置latex+代码片段让写作起飞_「已注销」的博客-CSDN博客
【Verilog学习】-04-程序
这里的取题目名字程序其实不是特别好,这里应该主要是procedure,也就是always、initial等其他模块包含的那一段代码。
always(组合电路)
always模块可以用来生成组合电路,其和块外面的assign有着相同的作用,主要是语法方面有着一定的区别。
在always块中使用组合逻辑,输出(也就是被驱动的等式的左边)需要用寄存器类型的变量。例如下面两种写法的功能是一样的。
1234567891011module top_module( input a, input b, output wire out_assign, output reg out_alwaysblock); assign out_assign = a & b; always @(*) begin out_alwaysblock = a & b; endendmodule
这里的(*)是指的是敏感列表,如果是组合逻辑的话,需要用这样的写法,如果把所有的信号列出来会容易出错,十分不建议。
always(时序电路(clocked))
阻 ...
【Verilog学习】-03-模块
verilog模块的实例化模块的信号连接模块的信号的连接有两种方式:一种是通过位置(顺序)来进行连接,另一种是通过名称来进行连接。顺序连接的方式和C语言的函数的用法类似,直接按顺序写,例如:
按顺序位置12345module mod_a ( input in1, input in2, output out ); // Module bodyendmodulemod_a instance1 ( wa, wb, wc );
即是通过顺序输入来进行(wa->in1,wb->in2,wc->out)。
按名称1mod_a instance2 ( .out(wc), .in1(wa), .in2(wb) );
按名称的例化不需要按顺序对其进行赋值,直接通过名称的依次对应来完成。
1>Error (10267): Verilog HDL Module Instantiation error at top_module.v(9): cannot connect instance ports both by order and by name File: /ho ...
【Hexo】-05-在github上搭建完整的博客
在github上完整的搭建一个博客
安装好Node.js (nodejs.org),Hexo,顺序不要变。因为在安装Hexo时,可以用到npm指令。
在安装完成Hexo之后,继续安装next主题 NexT 使用文档 (iissnan.com)
美化主题
支持数学公式:Math Equations | NexT (theme-next.js.org)
这里上次出现很多莫名奇妙的问题,就是没有看官方文档,导致装了一大堆东西,进而导致了冲突。
在github上进行部署
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
【Hexo】-04-数学公式
请参照next官方文档进行设置Math Equations | NexT (theme-next.js.org)