0%

一、分节分页

首先要把分界分页标识符调出来,这样方便排版,方法是“文件—选项—显示—显示所有格式标记”。
在这里插入图片描述
然后明晰一下分节分页的概念,分节指的是一种文章逻辑上的分割,用这种分割方式分割出的部分,可以具有不同的页眉,页脚,尾注。而对于分页来讲,只是物理层面的分割,一般的应用于比如封面,摘要,目录,参考文献的分割。

分节一般有两种,下一节连续,理论上来讲,下一节操作等价于连续分节符分页符,但是在实际操作过程中,下一页分节符会造成空白页的出现,为了避免麻烦,还是用连续分节符为妙。在写冯如杯的论文的时候,分节操作应该在进行其他操作之前做,因为其他操作有可能依赖于分节操作,比如制作目录,参考文献,制作页码页眉等。在这种论文中,一般分为三节,第一节包括封面,中英文摘要,目录,主要原因是区分页码。第二节部分包括正文和参考文献,第三部分是致谢,主要原因是参考文献的尾注引用问题。
在这里插入图片描述

二、样式

采用样式不是必须的,甚至在北航官方提供的文档中,都没有采用样式,而是对字体进行单独的设置。采用样式及一系列操作的原因其实代表着一种设计思想,即动态管理与自动化排版。采用这种思想可以使排版更加有效率,有条理,但是就我个人经验来说,因为冯如杯论文结构较为简单,而自动化排版学习较为复杂,要是时间紧,或者没师傅带,可以不学习这种知识,笔者自己就是因为学的半瓶子醋晃荡,导致了冯如杯差点没有参赛成功,而笔者的好朋友就采用了直接设置的方法,获得了一等奖好成绩。

Read more »

Verilog 语言细节

一、关于常量

1.1 负数

负数在verilog里是按照补码储存的,也就是说 $-2’b1 = 11$,但是需要注意的是,在比较的时候,是无符号的比较,也就是说 $-2’b1 > 2’b0$ 这个事情是对的。更离谱的是,$-2’b1 == 2’d3$ 这件事也是对的,在表达式中运算的时候也是这样的。

1.2 参数

Read more »

一、写在前面的话

这篇博文的本质不是一篇答案的汇总,HDLBits的题目组织形式是蕴含思想的(就像五三或者衡中的数学卷子),可以看到,虽然大部分前面的题目都谈不上难,但是如果一道一道的做下来,就会有体会,网站的搭建者是希望通过这组题目,来传递一种硬件设计思想。当然,更谦虚的说法是硬件设计思想基础。这篇博文的目的就是通过这些题目,来勉力阐述这种思想。

我写到了FSM章节的一半,其他的都写了,短期内应该是肝不动了,所以FSM的后面的答案就没有题解了,实在抱歉。

鸣谢名单在结尾放出。因为是无聊的刷题故事(不是为了写这篇文章,我打死都不会写这组题),所以鸣谢人员中只有很少在解决问题上为我提供帮助,但是倒是有很多人陪伴见证了这个无聊的故事,故一并鸣谢。

这篇文章还算成点的东西:

Read more »

一、设计想法

1.1 我的CPU的整体架构

微信图片_20211123100405

1.2 从单周期到流水线

虽然学长一直在强调重构,身边大佬也都对重构乐此不疲。但是以我个人的感觉,感觉不太需要重构(这可能就是我TLE了两天的错误观念)。我个人感觉完全可以在单周期上面改。为了给大家一个直观印象,我从修改原单周期CPU,流水线寄存器,加入阻塞刷新功能,加入转发功能方面分别说一下怎么改(严格说是怎么加,需要改的地方好像没有):

Read more »

一、代码规范

1.1 常量

我个人规范是将所有的常量都用伪指令.eqv声明,其格式会在3.2中介绍。关键涉及一个问题,就是.eqv这样定义的是一个立即数,但是不是所有的指令都可以重载了立即数参数模式,所以更加规范的规范是每次使用被.eqv定义的常量之前,都加载立即数到一个寄存器(规定为$t7),然后使用这个寄存器,这就是常量的全部规范。

当然,还有几种方法,一种就是把常量直接保存在寄存器中,每次就是用这个寄存器就好了。但是有两点缺陷,一个是寄存器资源会被占用,以puzzle为例,我们需要一个寄存器存1,来做bool标记,需要一个寄存器存4,来用于控制dir的四个方向,那么就被占用了两个寄存器。另一个是容易bug,因为要时刻留心代码不修改规定寄存器。

还有一种是临到用的时候,在用li指令给某个寄存器一个值,但是这样也是容易造成寄存器混乱,还有一个缺陷是如果要修改常量的值,就会造成大量的修改工作。

Read more »

一、写在前面的话

首先,这道题目我并没有过,一共是应该六个左右的测试点,我最好的一次提交是还剩下2个测试点没有过,但是那次提交已经是属于脱离了规范,纯粹为了测试而写的,不是规范风格的代码。我在签退以后,虽然在群里面同学的帮助下(结尾有鸣谢名单),意识到自己代码存在的问题,但是新写好的代码也是没有经过评测机检验的。所以尽管我很想对大家负责,但是确实是客观条件不允许,我的代码要是运行出来bug了,请大家不要打我。

所以这篇文章,大家就看个乐呵就行了,要是真从其中咂吧出啥滋味来,那是诸位的功德,要是没有,也只是我的水平太低,与诸位无关。

我在文章里面只贴了一个tb模块的原码,主要是为了让大家看的明白一些,没有cscore的原码,跪求助教大大不要删帖。谢谢助教大大。


Read more »