P1课下学习
# P1 课下学习 UPD: 2021/10/23 # 字符串自动机的简单做法 今天参考 roife.github.io 上的做法,学习了 Verilog 字符串自动机的一点骚操作 对于后缀自动机,我们可以不去做状态转移,而是考虑建立一个字符缓冲区 reg [127:0] buffer ,每次读到的字符都存到缓冲区中,然后去时刻检查缓冲区的字符串后缀是否符合题意,这样复杂的状态机问题就被简化成了简单的字符串匹配问题了(之前的感觉都白学了...) 但是这个方法好像不是万能的,目前来看只能匹配定长的、不连续的字符串,下举两例说明: 比如 [a-zA-Z]+[0-9]+...
more...Logisim Pre考前复习
# Logisim 复习 # 常见元件和门级电路 # Splitter(分路器) 对于 0x13 来说,化为二进制数字是(10011)2(10011)_2(10011)2,这时分路器虽然显示的是 0-2 和 3-4 ,但是实际的显示顺序是从高位到低位,即 2-0 和 4-3 ,这和 Verilog 中的 wire[4:0] 的方向是一致的 分路器的位数就是字面位数,第 0 位是最右边,第 n 位是最左边(最高位) 分路器可以调节多种外观,而且未必需要用到所有位的数据,因此对于 [31:0] 的数据,如果我们想要 [21:15] 和 [21:11] 这时可以开两个分路器,每个分路器的 Fan...
more...Verilog Pre考前复习
# Verilog 复习 # 基础语法部分 # 关于 begin 和 end 不要 C/Python 写多了,就忘了 Verilog 是用 begin 和 end 标记语句块 还有 case 语句没有 begin ,只有 endcase ; module 定义没有 begin ,只有 endmodule # 关于 assign 和 always @(*) 没啥区别 # 关于赋值 如果是如下定义的寄存器型变量 reg [6:4] a;reg [0:2] b;那么这样的赋值是合法的 assign a[6:4] = b[0:2];但是这样赋值就会错 assign a[6:4] =...
more...MIPS汇编哈密顿回路
# 谈一谈 MIPS 汇编 Challenge 题:找哈密顿回路 阅读本文时,我们假定读者对 MIPS 汇编指令、伪指令有一定了解,知道内存的寻址方式,并且能够编写 50 行以内的汇编程序 # 题目大意 输入一个具有nnn 个顶点的无向图GGG ,判断GGG...
more...Verilog 学习笔记(2)
# Verilog 学习笔记 - 练习题总结(Part 2) # 有限状态机 (FSM) 用三组例题进行讲解 # 题组一:Lemmings 游戏 # 题目来源:hdlbits, exams/ece241_2013_q4 # Easy: Lemmings 1 The game Lemmings involves critters with fairly simple brains. So simple that we are going to model it using a finite state machine. In the Lemmings' 2D world,...
more...Verilog 学习笔记(1)
# Verilog 学习笔记 - 练习题总结(Part 1) # 组合逻辑电路部分 # 时序逻辑电路部分 # 触发器 / 寄存器 # Edgedetect Detect an edge, 来源:hdlbits, exams/ece241_2013_q7 For each bit in an 8-bit vector, detect when the input signal changes from 0 in one clock cycle to 1 the next (similar to positive edge detection). The output bit should be...
more...CPU输出序列检查调试方法
# 关于 CPU 输出序列检查题的调试建议 CPU 输出序列检查题本身的思路不是很难,实现时却总是会因为一些细节问题导致出现各种问题,笔者昨天晚上在和室友一起调试时对此深有体会,因此在这里总结了几点调试的建议和方法与大家分享,同时也欢迎大家分享自己更好的调试方法 # 对拍程序 这一点要求你或者你的朋友需要已经写出一份 AC 的代码 对拍,顾名思义,就是将两个程序给相同的输入,看看输出是否一样。 既然如此,我们就需要几个步骤来实现它: 生成测试数据; 两个程序分别跑一遍,生成两个输出; 比较两个输出。 下面我来介绍一下以本题为例,如何进行对拍(本文示例的是在 Windows...
more...