选课类别:计划内与自由选修 | 教学类型:实验课 |
课程类别:本科计划内课程 | 开课单位:计算机科学与技术系 |
课程层次:专业基础 | 学分:1.0 |
数字逻辑电路实验是计算机专业硬件设计所必修的专业基础课,目的在于训练学生掌握EDA数字电路的设计技术的分析和应用,掌握硬件描述语言Verilog HDL的分析与应用。熟练掌握计算机局部逻辑的设计和调试方法。所有实验都是设计性的,实验老师会就实验题目,实验原理和具体的要求 作必要得讲解,学生按要求做自己的分析,进行比较,自行设计出最佳的方案 ,在此基础上学生可自选器件(TTL,GAL,FPGA)等芯片构成电路 进行分析和调试,在得到正确的实验结果后由老师检查确认后,写出实验报告,方能通过实验。 此举不仅较好的提高了学生分析和解决问题的能力,也为后边的计算机原理和体系结构实验打下一个坚实的基础。
卢建良老师的《模拟与数字电路实验》主要涉及使用Verilog语言描述电路,并通过Vivado软件开发环境实现功能。课程重点在于数字电路的实验,通常用FPGA开发板实际操作。一些学生反映这门课对提升Verilog代码编写能力有显著帮助,然而实验指导较为匮乏,自学成为常态。“挺多人抱怨这个课太耗时费力了”,教学过程中的调试过程繁琐且时间消耗大。课程使用的教材和中文翻译存在诸多错误,降低了学习体验。
总体来讲,给分情况评价不一,有些同学觉得给分厚道,有的则认为存在较大随机性。实验报告和大作业是主要评分依据,但具体评分标准不够透明,导致同学反馈评分“迷”。“连实验报告的评分尺度也不透明,不同助教可能评分有较大差异。”许多同学大作业和每次实验均按时完成,但总评分差异较大。
实验设计从基础到复杂循序渐进,前期实验较为简单,但中后期难度陡增。实验涉及复杂电路设计和实现调试,同学们建议提前预习实验内容,认真撰写实验报告,以及注重细节和debug。在大作业中,使用外设和展示合理有趣的项目设计可获得更高分数。提示:“板子是永远不会出问题的,Vivado是永远不会出问题的,只有自己会出问题”,强调实验过程中要注重自身coding的准确性与逻辑性。
总体给分较为严格,但认真实验和实验报告的同学普遍能取得好成绩。课堂上助教支持较为关键,尽量多与助教沟通获取帮助。对Verilog语言和硬件调试有恐惧心理的同学可能面临较大挑战。选课方面,计科系学生为必修,其他专业如时间充足和有计算机背景可考虑选修,但需同时学习相关课程如《模拟与数字电路》。
《模拟与数字电路实验》课程要求学生具备较强的自学能力和坚强的debug能力。尽管课程内容繁复,实验耗时较多,但能大幅提升Verilog编程和硬件电路设计技能。实验报告在总评分中占较大比例,建议认真准备。课程中的助教给予了较大支持,合理利用助教资源可降低学习难度。总体而言,这门课程对于培养硬件方面的技能非常有用,且对之后的课程如《计算机组成原理》有很好的铺垫效果。
2022/7/14,二年级第二学期结束后更新:
虽然Verilog实验饱受诟病,以及这个东西的调试也确实比较困难,所以有人对这个实验有反感也正常。
目前我的计算机组成原理已经学完而且成绩还算满意,从过来人的角度我重新审视一下妮可计科大二的硬件课程。
首先就是一门看名字就挺硬核的“模拟与数字电路”,这个课程我考得不好,不知道为啥期中考试全班倒数第三,当时因为有些比较重要的事所以也没查卷(话说我大学两年都没查过),然后期末爆肝,期末考试的时候做完了全部模电题目和部分数电题目。期末卷面没查,不过最终总评被zjx奶到了8字头;这门课大约2/3都在讲数电,剩下1/3讲模电。其实我个人觉得数电挺无聊的,模电倒是有意思;不过这和计科的大部分同学的感受相反。我觉得数电根本没必要讲那么多以及那么细,很多实现细节感觉讲了也没啥用,尤其是一到74HCXXX那些地方,看着就反胃。教材也很拉胯,我们大可以精简一些内容(一些:指大部分)作为初学者版本,先等基本知识成体系了再看那么多别的东西也不迟。不知道这么拉胯的教材咋都出到第七版了。以及学校自己明明有编的比这个教材更好的书(指刘同怀、顾理的《模拟电子电路》)为什么不用。最后模电考的很少。
然后就是一个和“模拟与数字电路”课程名很像的“模拟与数字电路实验”,众所周知只有数电实验。其实我觉得这门课和模数电路的联系挺弱的,虽然也还有一点联系(指期末考试),但是缺了这门课数电也可以照常开下去,看信院就是这么搞的。其主要目的还是为下学期的计算机组成原理做准备。挺多人抱怨这个课太耗时费力了,以及没啥用。只能说单看这课是没啥用,跟下学期联系一下就有用了。
另外还有一门课叫“计算系统概论A”,俗称ics,这个课对很多东西倒都是浅尝辄止,不过倒也是学了简单计算机的运行原理和一些浅显的设计思想,拓展的一些东西倒是打开了新世界的大门。我是ah班的,详情可以看我的评课社区。
接下来就是大二第二学期的重头戏“计算机组成原理”,其实我觉得这个课是这四门课最有意思的,虽然实验debug也挺痛苦,不过设计思想倒是不错,以及老师也挺有意思。这样结合操作系统,总算是能构造一个相对(ics)完备的计算机了。听说英才班H课任务量比较大,实验更有意思(也更难做)。学习这些东西总之还是比较有用的,直观上体现不出来,但是也在潜移默化影响着编程思想和习惯。
大二的硬件课就到此结束,后边的“微机原理与系统B”以及“计算机体系结构”我大概率是不会学的,不过如果闲下来也可能会去了解一些。
以下为原回答
Q1:这门课的定位是什么?
答:作为中科大计科特色(硬件课比较多)的一个体现,配合大二第一学期的“模拟与数字电路”这门课的实验,同时为第二学期的“计算机组成原理”课程的实验(未单独开课,但胜似单独开课),以及传说中的“计算机体系结构”课程的实验(这门课对非英才班学生而言不是必修,我也没上,目前看来20级改选修之后没几个人愿意上的)做准备。
Q2:这门课的授课内容是什么?
答:看课程名:模拟与数字电路实验,没有模电。这门课与模数电路课程的知识联系的比较紧密,但是我认为对于学习数字电路并没有什么用。主要包括前几周使用logisim连一些电路,以及后边主要使用vivado和Verilog语言描述并生成仿真数字电路。
Q3:(针对辅修人)计算机组成原理是辅修必修课,没有做模数电路实验有啥影响?
答:其实很多辅修人,缺的不只是数电实验,还有数字电路…没学过数电的,建议寒假自学,否则说句不好听的,我建议考虑退课,除非你是自学巨佬。计算机系统概论学过的数电不算。
对于自学巨佬或者信院人等学过数字电路的,如果只缺数电实验,如果是在寒假,那可以找点数电实验资料自己做做;如果已经开学了,那我建议找个能至少在白天大部分时间几分钟内回复你,并能够有一定时间手把手教你的计科同学,一两周速成一下,否则考虑退课。
如果能学会vivado的基本操作、一定的数电知识和简单的Verilog知识,那么来学组成原理不会那么痛苦。(想起来我开学的时候,找组成原理实验助教问问题,刚在旁边坐下,助教问:是不是又一个没学过数电的…)
Q1:实验器材如何?
答:这门课不像信院数电实验那样用真实的线路做实验。对于普通版学生,用的是电脑。高级班会用真实的器材。
Q2:时间安排怎么样?
答:像计科大多数实验一样,时间安排比较自由,不一定按课表来。每周可能要3到10个小时,高级班更多。
也像其他的计科实验一样,感觉别的专业的实验,大部分人都能做完且做的差不多,然后卷实验报告;计科某些实验我觉得是能做出来就不错了,实验报告随便写写就行。以下是我们组组成原理实验群(这个实验是单周期CPU):
Q3:实验内容怎么样?
答:之前我觉得这个实验+组成原理实验是没啥用的,但是做完单周期CPU之后感觉也不是那么没用,能够加深对CPU等电路的理解。但是我觉得用一种痛苦且耗时的方式才能理解并不是最优解;我觉得可能使用高级语言比如C++这种写一个CPU也许更合理(比如计算机系统概论的大作业,我觉得就挺好)。
实验所用的理论知识是模数电路的电路内容,Verilog的学习怕是主要靠任务驱动:教材上讲的感觉很乱,老师给的一个参考文档大部分内容也用不上,比较耗时间。建议做一个精简版的Verilog(最好能同时配合vivado教程)学习手册。
相比于大物实验而言,这个实验不存在实验超前于理论问题,不过实验文档不如大物实验详细。(数电实验文档比组成原理实验强多了…组成原理实验直接梦回阅读理解)
Q4:助教怎么样?
答:就我本身而言,我是某Z助教组的,这个助教人很好,即使我特别菜,问一些极其弱智的问题,他也会比较耐心的解答。据我所知,本届大多数助教都很好,往届也一样。后续组成原理实验的助教也是,比如评论区那个比较认真的助教。
Q5:还有哪些想说的?
答:首先就是对于Verilog语言。由于中科大计科的硬件课比较多,Verilog用到的地方也比较多,再加上其相对用处小,所以很多人不满,戏称“Verilog科学与技术学院”。
大一的人需要考虑专业问题,有意向选计算机相关专业的话,提醒一下可以综合比较:
提醒一个网站:执行计划查询 - 中国科学技术大学教务处 (ustc.edu.cn)别到大一结束了还不知道培养方案从哪查,甚至不知道培养方案这个词。
对硬件完全没兴趣,极其讨厌的,建议考虑大数据。不过我觉得计科学一定的硬件是有用的。考虑到当前计科毕业就业竞争激烈,我希望能够在有限时间内多学一些更有用的东西,而不是搞一些无厘头的实验或者量子物理这种课。
组成原理实验还是有一些用处的,能够加深对课程内容的理解。虽然很多人都在相互抄,但是我觉得就算是抄也尽量理解一些东西。
计科人觉得某些实验很恶心是正常现象,但是如果一味拒绝所有实验,那我觉得如果智商高不如去学数学(似乎没啥实验,不知道有一门课叫数学实验是干啥的。如果说错了请指出),或者去综合类院校的外语、历史等院系专业。
专业选错了别怪我。
Q1:老师咋样?
答:老师水平不做评价,因为这门课似乎不是很能体现出老师的水平。只是说实验文档还是不太行,不仅描述不好,而且实验任务也不够明确,检查点不清楚。不过,看得出来老师一定程度上尽力给我们减轻负担,比如取消了不少内容。上课时也尽量在解释他编的、基本啥也没讲的实验讲义。也在群里反复提醒要我们完成作业、提醒濒临挂科的人找他商量如何避免挂科(印象太深刻了)。
Q2:给分咋样?
答:我感觉优秀率是满的,以及但凡认真一些都不至于拿特低分。
优秀率似乎是按组算的,在比较躺的组有优势。
前面的实验虽然痛苦但是多数人能做完;感觉最后决定分数的还是大作业。大作业一般会有一个比较水的题目用来水过去,当然分数也不会高。大作业我就两个小时写完的,总评84,还算满意,大部分做这个的都是3.3,不过也有3.7的也有2.7的。卷一点的大部分都3.7+,也有一些人可能比较倒霉拿个3.3的。评课社区大佬多,不过我认为评课社区不应该变成4+社区,应该多一些排名中等的学生的想法。
提醒一下,大作业有人做生成logisim电路文件的程序。那个文件是个文本文件,打开logisim加载就能出现电路。这个实验虽然是比最水的题目辛苦,但是跟数电实验似乎没啥关系,也很难得高分。
Q3:选课建议?
答:计科的没得选,辅修的如果时间多可以选(请同时学习模拟与数字电路,或者其他的数电课程),其他的不建议。
另外这门课实际上课时间可能与教务系统上排的时间不一样(是可选时间段的,有一个选项就是正好在教务系统上排课时间上)。如果有需要与这门课叠课的,虽然实验不能叠课,但是考虑到特殊性,可以询问本课程的上课时间选项后尝试跟相关老师解释,有可能成功。
更新:蚌埠住了
2022/4/23更新:我听说有一个辅修同学暑假想做一个辅修指南(针对普通学生的),这个事我到时候尽量支持。
看到同学来点评这门课了,所以我也来写点东西……评分在分数出来之后可能会修改。已修改
这门课大概就是使用 Verilog 语言在 Vivado 中写“代码”,刷 FPGA 开发板,实现功能。今年的实验手册应该和之前不一样,是直接用的 Xilinx 的大学教学手册。不得不说,这个手册的编排极不上心,一堆 typo 和一些奇怪的小问题。助教会在实验前发中文翻译版本,但是实话讲,这个“中文翻译”不仅原样继承了英文版的错误,还添加了一些新的 typo……
FPGA 开发板本身其实还不错,但是 Vivado 坑还不少。我用的 Mac,Vivado 没有 Mac 版本,所以我开了一个 Linux 虚拟机装 Vivado,在这一个学期中,感觉自己发现了不少 bug,比如说——Vivado 的项目文件不能放在 VMWare 的共享文件夹中,不然不能仿真,之类的。
另外 Vivado 的行为级建模疑似有坑:一个控制七段数码管分时复用的代码,用行为级写的时候发现时钟频率高 && 两个数码管靠得近的时候不正常,但是用数据流写就没问题了。但是之后没有遇到类似的问题。
每次实验的时候对不少同学(估计还包括助教)来讲都是不眠之夜,其实非常建议提前做完,可以省下不少事情,毕竟你不知道写代码,合成,实现,生成比特流和烧板子的时候到底会出什么幺蛾子——而且这一套流程还很慢。
给以后学这门课的同学一些学习建议:
我最后大作业做的是 2048,加上了四首 BGM。感觉还行。
PS:心疼助教,每次实验都会碰到各种 expected 和 unexpected 的问题。
---
(2019/2/21 更新) 成绩竟然还能撤回,然后今天惊闻自己降了一档。
(╯‵□′)╯︵┻━┻
上面基本把该说的都说了。我在这补充一点:
给大家提一个醒,实验报告要认真写,占20%。
我有个同学大作业和我做的基本一样(VGA做的一个八数码拼图游戏),实现方法、代码什么的互相都有交流,大作业得分很接近,前面的实验也都是按时完成的,但是我们的总评差距很大。唯一的解释就是实验报告的问题了。
另外,我室友期末做的比较水,是一个用数码管显示的小游戏,貌似只有15分。但是实验报告写的很认真,最后总评很高。
如此看来,实验报告改的应该很严,而且分差拉的很大。
而且据说大实验不同助教的评分尺度不同。有的助教表示到他那检查的几乎个个都有VGA,没有VGA分就很低。而且,外设可以用来吓唬人。比如,如果你是信院转来的而且学过电设的话,把一个单片机连到板子上就可以起很大的震慑作用(但是可能你的单片机实际上没起什么重要的作用)。键盘鼠标什么的就更不用说了。要让助教觉得你的结构足够复杂,而且实现起来颇有难度。
这门课让我体会到一个道理:板子是永远不会出问题的,Vivado是永远不会出问题的(虽然综合、生成速度极慢),只有自己,永远都会出问题!
Tips:ISE和Vivado其实都是有调试功能的。不要觉得仿真太麻烦就不做,实际上仿真可以解决大部分的bug。波形图可以反映出绝大多数的问题。另外,每一个Warning都不要放过。有可能哪个地方你少连一条线,warning里就会以“某个端口连接数不正确”的形式告诉你。
院必修课,给一分是因为:
原来给了六分,我写了总共得有好几万字的实验报告好好搞,一开始98总评,忽然还说要改总评!??98给我改到91??
正态分布个锤子,说的不好听点,凭什么要让我被正态分布?我写的多还是我的错了?
一学分的实验,可以直接占掉你前一天的准备+一个下午课上+一个晚上报告的时间。如果你选择不提前做一下该周的实验,那么你极大可能会做不完。
其次,实验有英文原版指导书和助教翻译的中文版。建议是有能力就直接看英文版,因为中文翻译偶尔会XXX(比如会把GreyCode格雷码翻译成灰码QwQ)。即使是英文原版,有一个状态机实验的要求也是前后矛盾,套波形图画的“序列检测器”跟模数电路课上讲的分析方法根本划不到一起去。
最重要的一点是,你可以说是刚学会1+1=2就要算本科大多变量微积分期末考了。用verilog在vivado编程的时候疯狂报错、出奇怪的warning、FPGA就是不出你这个功能。。。。。。。最可怕的时候你根本不知道为什么这么写代码就会出bug、换成这样看起来没什么变化的语句就没有bug了(甚至连老师和助教大多时候都帮不了你),根本上讲就是模数电路课上讲的那点verilog语法根本就不够体系,你要是有本和c primer plus那样的verilog的书,再给你一门课来从底向上教给你这句verilog语句在底层是拥有什么样的行为,会生成什么样的电路。。。。保你一遍写完直接跑板子0 error。
tip0:给分是随机的,放松心态,不必紧张
tip1:提前看实验!提前看实验!提前看实验!最好的是提前把几个实验先做做试试!
tip1.1:实验报告请千万要认认真真写,表示你的认真态度(某助教跟我讲的,这个占分应该比较重)
tip2:不要忽视任何一个systhesis和implementation的warnings!任何一个!哪个warning都要找到出处,确定这个是有问题的还是没有问题的,百度看看,改一改。一个建议是多用数据选择器,少写always(玄学警告)。(某一次写计时器的,我从中午一点写到下午六点半,七点助教验收完,就开始给别人debug,直到九点从实验室才出来,饭都没吃)
tip3:大作业,涉及稍微复杂的逻辑,多用时序,少用组合,多用摩尔,少用米利。做之前基本通篇看一下参考手册之类的内容。参阅diginilentinic(是这么拼么我忘了板子上有这个公司的网址自己找就行)
tip4:卢老师给的“参考代码(bug)”,直接无视,看都不要看。
tip5:下面贴一下我的本学期实验代码和报告,vivado2018.2版本。(
(想了想还是不贴链接了,认识我的学弟学妹来找我要好了,给不给就看我心情了嘿嘿嘿
体现了计科的特点:自学。
老师提供了辅导书和各种参考资料,在实验的过程中基本靠自己看,编写代码,以及在一遍一遍的错误和调试中学习Verilog。这个实验会用去每周2个小时到1天不等的时间。最后的大作业在两周内完成,我用了5天(全部学习时间用来编程),没有用外设,做出了一个用户界面不怎么友好的游戏,目测给分还算不错。所以感觉外设只是一种表达的途径,不是关键所在,设计的系统的核心代码逻辑复杂清晰,完整可用的话使用外设可以锦上添花,但如果做一个比较无聊的东西或者简单的小游戏,加个蜂鸣器也起不到雪中送炭的作用。
希望这门课在之后能提供更明确的要求,有几次实验总是在纠结老师的要求到底是什么。。。。
最后的大作业的话,建议使用做一些有新意的东西,外设能用最好,用不了(或者懒得学。。。)就用心完善设计,提升逻辑复杂性,也可以拿到不错的分数。
另外感谢前几届的学长,没有你们的经历和反馈这门课可能会比现在坑很多。现在有了教材和助教,完善多了。
首先今年的实验室从logisim在电脑上手绘电路开始的。和数字电路课程很配套,也大大减少了大家理解学习电路的难度。 今年只有三个小实验+一个大实验是需要烧板子的,也就是说前半学期这门课就是单纯的福利课…是的,我直到第二次上fpga之前每周撑死花2个小时在这门课上。 当然开始正式上板子了也慢了…不过基本上只在上课时间做也是能完成的。 不过对于第一次写电路代码不多花点时间像话么…
另外今年老师和助教很nice,不仅ddl变成了实验2周报告3周,在很多人都出现迟交问题时也直接减少了一次实验;最后大作业的得分也因为大多数人交不上来而减少了迟交扣分。所以还是很赞的。而且有的时候即使有点小bug也会先给过,然后提醒你在实验报告里面修复。
今年开始有部分同学要使用某学长开发的fpgaol平台。考虑到是第一年用,一些问题还是可以理解的。(你知道我有一天等到8点还不能上传比特流我有多绝望么…最后的结果是:在线控制烧写的raspi罢工了…)另外平台的接口和输出与普通fpga不同,也请后面的学弟学妹们注意。
最后就给一点建议吧。一个是做实验写代码要有耐心,不要放弃。(我们无论遇到什么bug、都不要怕、微笑着面对他,消除bug的最好办法就是创造更多bug(划掉)。)作业题也好大作业也好都没多难。第二个是一段式状态机才是正统!三段式是什么caib!第三个是注意你要写的是电路,他的语句关系和C是不太一样的!!!好多bug都是源于你把verilog当C写了!!!一定要注意!!!特别是寄存器赋值的时候!!! 最后,不要抄袭!!!不要抄袭!!!不要抄袭!!!
----------------------------------------------------------------------------------------------------------------------
最后出分96,感觉美满了。
咱就是说,实验都按时完成,报告都正常写,oj都做完了,大实验挑了个最简单的拿及格分,为什么同样是这样做的人分数差别会有辣么大呢?没到优秀还要给个81卡绩,屑屑你,魔术实验。 这门课唯一好的就是助教了,助教gg耐心细致还平易近人,与ics的hyq助教形成了鲜明的对比
这门课最大的问题就是你还没学会走就让你开始飞。光凭模数课上以及实验课开头一节课讲的一点点Verilog的知识,根本不足以了解编程到底是个怎么样的思路。因此需要花费非常大量的时间去找相关的资料。在程序的Debug方面也非常耗时间。一个小问题就得花好久去解决。
给分的话非常的迷,在课程开始的时候并没有明确的说明具体的给分标准是怎么样(比如说实验报告会占评分的绝对比重之类?),因此的我实验报告也没有写的非常的详细。我的每个实验都是按时完成的,最后期末的大实验做的是用VGA显示器实现的一个八数码,当时最后的实验得分是15/20分。在这样的情况下最后总评74????WTF???因此合理怀疑实验报告占了绝对的比重。
至于这门课成本身,学分权重与耗费时间严重不符,虽然有固定的上课时间,但除了前一两个实验,后面的实验不提前做的话时间肯定是不够的。总之需要花时间就对了,而且之后的课程还会用到Verilog(组成原理,体系结构),所以多练练也是无妨。
给分厚道。期末成绩不对,跟老师说了一声,提了 47 分。
快要开始上课的时候才说板子不够,早先几个月都不知到去干嘛,最后两个人共用板子,最后大作业两个人都要用板子挺麻烦的。不过我们这一届开始有新的板子用,据说是老师他们自己焊的,只有二十多个试用名额,试用这个板子可以自己独享这个板子,当时怕有坑就没申请。
老师上课时给的指导很少,第一第二次课会介绍ise怎么用,但是讲得好快,我跟我的合作者都没听懂就过了,第二次课讲怎么通过画电路图设计电路,结果张俊霞老师搞半天没搞懂怎么弄总线。
ise问题比较多,偶尔会随机出现一些无法理解的bug,重新运行可能解决,到了写组成原理实验的时候,不知到是项目变大了还是什么,每次仿真都会出问题,基本都是通过在测试文件加几个空格然后保存再重新仿真来解决的。有同学用iverilog+GTK代替ise,我用过一次就没用过了。
verilog语法基本都是自己学,在模拟和数字电路这门课上会简单介绍一些语言的概念,后面抽一晚上的时间把老师发的一本入门教程看完后才算写得比较顺手。
最后大作业写了像素风格的Flippy Bird游戏,写主要逻辑的时候写得特别顺手,一两个晚上就基本完成了,但是后面还是花了好几天想用fpga里面的flash存进一些图像,但是死活没弄成。彻底放弃这个想法后想使用鼠标控制游戏,但是我拿的板子是nexys 2,没有USB接口,得要弄转接头,听说这玩意兼容性不是很好就放弃了。
最后总评92.
2019年6月补充:
这门课最重要的还是要培养对verilog的感觉,如果这个实验课结束之后对verilog还存在恐惧心理,还弄不懂verilog的时序问题以及还没养成一个好的debug习惯的话,后面的组成原理和体系结构会很痛苦的。
2019年9月企业秋招感想补充:
在秋招面试的时候提到我们写的数电实验和CPU都是用verilog写的,面试官基本都是眼前一亮,大概大部分学校都是用C++之类的高级语言写模拟器的,我们坚持使用verilog也是少见。
这门课几乎是自己学的, 而且好的资料也很难找
硬件编程最差的体验就是debug了,体验极差,速度太慢
很遗憾,这门课没有激发我对硬件编程的兴趣
前几次实验很简单,后两次就比较难,
可以说是教了加减法,就要做微积分了
学过计算机组成原理之后再来学这个表示也有点恶心。
logisim虽然有点小儿科,但是有时候也挺迷的。
Verilog的话,相比于cod来说还是非常基础的了(除了大作业之外),不过好久没怎么写有时候也要调挺长时间的bug。
最后大作业不是很清楚情况。前面所有实验我应该都是满分,最后交了个cod的五级流水线CPU+LED点阵循环播放的水的作业,最后拿了4.0,可见要么助教认为交cod的作业太水or别人做了个比五级流水线CPU更厉害的作业(?
简单的实验每周要花三个小时左右做完加写实验报告,难的实验要很久。实验指导给的内容蛮详细,会有些帮助,不过关键时刻还得抱大腿或者找助教。最后一次实验比较难,我做的很水,但是助教最后给分很好。
2019秋学期老师修改了课程用的教材,每周都会发下一周实验内容,感觉还是不错的,至少学生一有问题老师就会积极地反馈修改。
实验1-8总得来说感觉是不是简单过头了,完全没有体会到前几届说的难度,可能是因为这学期大幅修改了课程内容,只有一两次因为某个蜜汁bug卡在那儿(不过老师很快就给出了解决方案),所以感觉老师还是挺负责的。
离谱的是最后一个大实验,难度陡然提升,至少先用一周让我们熟悉各种外设的使用吧啊喂。真的是学了个1+1=2就来做微积分。在此建议大实验千万不要拖,你根本不知道要花多少时间在上面(我们有同学在机房待到两三点)。有人嫌烦直接扒了一些csdn上的代码改改就交了好像也行?反正我全是自己手打的,最后满分20得了16。
最后吐槽一下这课的学分,太nm对不起花在上面的时间了,好歹给个两学分意思意思,真正花在上面的时间每周可远远不止那一个下午。
专门为这门课注册账号来点评一下。
课程相关的其他同学说得很全面了,我就来吐槽吐槽给分。
其他课程开学就说清楚总评怎么评,哪些方面占百分之多少,这门课呢,没有,到期末都不知道如何评分。
没有就没有吧,我按着你说的做,期末总不会差吧?课程群里上传一个实验报告模板,只有“目的”、“截图”和“总结”三大块,每次实验要求也只要求检查代码截图,这要做什么还不明显嘛。结果期末被这平时实验报告拖后腿了,看来要写出“自己的东西”是常识吧。
最后期末给分85,过完年撤回二次给分89,我觉得是下调了平时实验报告占比,其一,我平时检查满分,大作业18,分数提高多半是低分占比减少了;其二,毕竟平时实验和大作业大家相差不大,只有认没认真对待平时实验报告这方面会造成70+和90+两极分化,这一调整都往80+靠拢了。
所以,平时扣一两分,大作业水点没问题,平时实验报告必须好好写。(怨念)
继大雾实验之后成为可以日常吐槽的实验课!给分真的很差……建议学弟学妹从第一次实验课开始就每次按时交……我就说为什么那么多学长学姐重修一门一学分实验课的
计院必修课没啥可说的。
其实难度还是比较大的,主要是Verilog 对debug 很不友好,有时候一点点小错误几个小时就是发现不了。
课程时间教务系统上写一个下午,其实晚上也可以做,不过主要还是要提前完成,很多部分还是要靠自学或者问同学,实验指南不太靠谱,不过已经不错了。
助教有4个,都很负责,但是其实还是太少了,我印象中很少能在debug的时候得到助教的帮助。如果这课要效率高的话,助教大概要配到像大雾实验那样(不太可能)。
最后的大作业是自由发挥,实际上对于不加外设或者加的少的同学不太友好,助教给分大概也是按照实现难度来判断的。
张老师比较和蔼,卢老师比较凶,嗯就这样。
@runday 的评价有些片面。老师和助教对问题解释确实有些不到位,但是直接问数字电路老师就比较好。数字电路的教材里讲Verilog讲的很明白,而且Verilog本身语法也不是很复杂,我们的要求就是会用,也不需要探究语法的细节。不理解什么叫“他给的完全不能用”,那个软件用起来还好,win8以上系统也有解决办法。第一次接触七段数码管的时候,难度跨度确实有点大,时间少弄不完,但是其他实验代码都不过十行二十行。怕迟交为什么不提前做?况且大部分实验上课时间足够弄完。板子坏了又是什么情况?完全不能理解。我和我认识的同学板子没一个有问题的。板子不够用我也不能理解,这个板子下学期都是用来做CPU的,你有什么复杂的程序能用尽板子里的逻辑门?最后成绩95。
这一年态度不好,对问题的解释不到位,还经常让同学去百度,要求又严格。这门课设计得非常不科学,没有任何的参考书,网上也很难找到代码参考,实验开始后才让我们配置quartusII,而且他给的完全不能用!网上很难找到破解。实验做到一半换成xilinx时都要期末了,而且xilinx不兼容win8,要么完全用不了,要么经常出问题坑你。实验花的时间很多,只靠上课时间绝对弄不完,每迟交一周扣一次分。quartusII用的板子也是经常坏了修的,完全正常的板子可能一台都没有,做复杂一点的实验板子就不够用了。最后成绩67
坐标提高班。
任务确实重的离谱,不过难度其实不算高,按部就班来,按时完成不是问题。
最后大作业没做好沟通和规划,有两周时间,但小组三人总共只花了三天多,我也没做好描述,导致分工的优势一点都没体现出来,总之是一团糟;不过好在最终还是把成品做出来了(虽然看着像半成品一样)。(另外,综合实验真的特别特别特别卷,看到相当一部分组成品的复杂度和完成度都难以想象)。
最后,虽然综合实验是一团糟,本人还是卡住线拿到了96的总评,不知组内其其他两人如何,也不知道综合实验占的比重有多大。
计科必修课,逃不掉的
据说卷一点就能拿优秀,然而我实验报告每次都认真写了,最后的一个实验费了半天劲也没写最水的那个,最后是个3.3,有点伤心 我猜原因可能是我觉得我们组助教人比较好,于是我有时候实验还有bug就直接拿去让助教教我,在这里扣了实验完成分? 好吧是我太傻了
这门课我花费时间很多很多很多,和它的学分完全不成正比,虽然课表上只是一个下午,但是我基本上要搭进去一个下午和一个晚上才能写完实验,并且,还不包括实验报告
不过收获就是会写verilog了,而且助教和老师平时都很和善,(指对我而言给分的时候不是很和善)也算是给了我一丝慰藉 另外我们组不发布每次实验的分数,只有最后的总评,可能这也是让我自我感觉一向良好最后心情有落差的原因
刚开始前几次实验较为简单,后续实验每次都要消耗大量的时间,1学分,实在不值得
vivado使用体验差
遗憾是没有摸到板子
学完之后,基本掌握了Verilog的编写,但是最后一次大作业实在是不想动,logisim摆烂稍微加了点改动,奈何同组摆烂人太多,竟然给到了4.0,也许是实验报告写的不错,震惊了,讲道理自己都不觉得自己能拿这么高,感谢助教,感谢老师
这门课这学期由实验、实验报告、大作业、oj组成,普通班平常不上板子,大作业自己选上不上。说实话我觉得收获最大的是oj…如果不得不用虚拟机的话建议用vivado2016版本,经过大家的检验发现要比2019稳定很多虚拟机也不是很稳定有天下午一堆人烧不出来破大防。烧个两三分钟是正常的,半小时是不合理的。实在烧不出来的话就及时remake或者抱大腿吧(●'◡'●),建议提前个两三天写实验以防写不完。最后让我们记住并高呼:“vivado是不会出错的,只有我们会出错!”
给分挺有意思的,大作业是组内选出35%的人给15+/20,然后再整个班给优秀,实验报告也是助教给分,感觉总评主要是大作业和实验报告区分开了,其中大作业占大头,实验报告看助教奶不奶吧x奶的话整个组可能能高个一两分?但这个也选不了hh躺平人+助教奶混个3.3还是很容易的
2020年秋上了这门课。
与前几年不同,现在这门课前几次实验都是在FPGAOL在线平台上完成了,不需要接触实体开发板,这一改变利弊并具吧。好处是简化了很多实验的内容,我个人基本上在ppt刚发布不久后就能做完,debug和实验检查也变得更容易了。坏处之一是FPGAOL这个平台功能太有限,管脚少的可怜,甚至连数码管全灭都做不到;另一个坏处是由于对实体开发板不熟悉,到了最后综合实验可能直接傻眼,白白错过拿一个还算不错的分数的机会。
最后综合实验,似乎大部分人都很排斥用实体开发板?于是在大部分人用FPGAOL或是logisim绞尽脑汁想主意时,我用开发板+vga实现了个没什么新意的像素小游戏,总共耗时2天课余时间,拿了87,满足了。
学这门课一定不要畏惧verilog。verilog虽然长得跟C语言很像,但本质是连线,请一定不要代入写C语言的逻辑,否则可能debug到秃头。以及组成原理实验也会用到verilog,好好做数电实验,后面也会受益。
快毕业了,统一评课。
这门课我是19年上的,总体不推荐。
但必修没得选。
不多说。
第一,以后还要用的,不想学也希望同学们好好学,要不然组成原理体系结构一起爆炸,就大概率准备考研了。
第二,永远不要迟交。
第三,好好写报告。
这门课主要是和助教以及制度交互。
完完全全考验情商。没什么智商的位置,代码就那样,找朋友一起解决也不是不行。
本来是要给9分的,每次都按时提交,报告就简单水,然后大作业在大佬的帮助下完成了,用的开发板。平时基本满分,大作业回答问题不好,也就这样,拿了优秀,不错了。但给7分的原因是老师会单独开竞赛班去学更难的东西选拔竞赛人员,选拔前保证了最少给优秀,结果成绩出来好多大佬都3.3,据说老师说都给了很好的成绩。这些大佬的优秀率还是被限制了,是打分后放回了原班里进行算分,这样不仅对大佬们不公平,他们真的学的很累,然后还占用了我们普通班的优秀率,很气。既然你学的不一样为啥要一起算分?一起限制优秀?对谁都不公平。
极其繁琐的实验课。一共十次实验。最后一次实验是自己进行一个项目的设计和完成。
难度成迷,按理说应该由易到难的实验安排,但居然会偶尔难度陡增。印象里第三次实验,做了整整一天(真的是从早上七点多在西图肝到晚上),没!有!做!出!来!……然而紧跟着的实验四,半个小时搞定?
整体难度很高,虽然只排了一个下午的课,需要耗费的精力则要大很多,完全秒杀大物实验之流,其唯一好的地方就是比大物实验带来的收获多一些。因为这部分内容在之后的学习中还算比较有用。
每个助教全程负责一组同学,主要是检查实验,实验报告,给分等。一般助教都是从这个阶段过来的,知道大家的需求,都比较nice,也不会难为大家。尤其表白我们组助教myl,很负责任。还花费非上课时间来给窝送板子,每次检查窝实验时也会给窝指出一些不足。可以说是很好了。
最后给分很满意。爱了。
但该课确实很耗精力,不过也避免不了吧。计科的学弟学妹要提前做好心理准备。
课的内容和老师还是很好的...但是不同助教给分差异极大,有点玄学
给分不是杀手是玄学手 一同学一开始70被提到82,另一同学95被拉到84,这调分技术就和ljl老师的参考代码一样让人捉摸不透 建议学习的同学一定要从网上去多搜一下verilog的相关语法,懂了之后就会发现课程也不是很难,要是完全跟着ljl老师走,那怕是要凉透了 另外debug的时候心态要平和,否则可能气死在机房了
这门课程的给分存在严重的教学事故。
总评先给了95,在教务系统上登出,又撤回降到89 。而原来85的还有提到89的。
玄学给分 玄学调比例
这件事给我的直接观感是:分数是老师说怎么给就怎么给的,上差下差甚至可以3个档。
这就是妮可对学生负责吗?分数全靠运气??
非常生气。
卢建良也不负责,据同学反应答疑还是张老师和个别助教靠谱。
感觉好好写实验报告,水水地做实验比水水地写实验报告,好好做实验给分高,这种课没法按照实力给分的,玄学。
反正也没得选,给一些建议吧:
1.最好找张俊霞老师debug,姿势水平高且态度非常友好。
2.实验报告一定要认真写,心得体会之类的多凑字数,凑一两次以后按自己套路写起来就快了。出分以后普遍反映是给分差吧,我实验报告每次600字+,其他方面大家也都差不多,最后91,感觉给分还OK。
3.写代码建议先自己思考或者跟别人讨论交流,直接抄卢建良老师给的参考代码是不可取的(很可能死都不知道怎么死的)。
4.工欲善其事,必先利其器。vivado里写verilog建议先配置好舒服的编辑器(方法自行google,Notepad++和Sublime text都挺好),高效又美观。
课程很麻烦,每周都是噩梦。 期末的大作业可能是占比很大的,实验报告估计会有意想不到的占比。
拔苗助长的FPGA体验,懵逼的不行的综合实现
综合时会出现各种玄学,大抵是因为Verilog本来是一门用于仿真的语言最后却拿来做综合,导致诸多边角情况,生成奇怪的电路……
(也许应该自己看看开源的Verilog实现吧,比如yosys?)
最后肝了一星期,看了一遍AXI总线的手册,调了EthernetLite模块,做了个用Phy发送以太网帧的Demo,受益匪浅。
这门课最大的特点就是自学,事先不做准备,只在实验开始前听老师讲两句,基本上一下午是做不完的,遇到奇怪的问题也别指望助教一下能帮你解决。一般是周三晚上才有下一个实验的ppt,而周四下午就做实验了。我都选择晚上尽量直接做好,然后下午检查完了就走。 前几个实验基本就是小学生编程的水准,后面几个稍有些难度。很多时候只是因为对硬件语言不熟悉,才觉得错误很玄学,不要总甩锅给编译器(虽然编译器确实很迷)。似乎最后总评基本看大作业完成情况。 大作业我写了一个类似东方project的一个弹幕射击游戏,素材取自TH14,画风算是少有的非像素风格游戏。 总计花费时间大约是一整周的课余时间,由于老师出借显示屏的时候还在做大雾实验,我就只能到各种机房去用显示屏(主要是少院机房)。虽然不知道给分怎么样,但完成了这样一个相对比较完整的游戏,其实还是很有成就感的ヾ(Ő∀Ő๑)ノ(顺便写verilog锻炼了我的心性) 完成大作业要么花时间精力去学习课外知识,要么想办法在设计上有出彩之处。如果是赶ddl赶出来的大作业就会很水,而且估计一学期啥也没学到(感觉至少有一半的东西是我在做大作业过程中学到的)
这门课其实就是Verilog写代码,可能最开始接触有点方,但是Verilog学起来并不难(虽然有时候极其玄学。。。。)。前几次作业很简单,一个晚上绝对能弄完,甚至能空出来很久。
不过等到做状态机那一次,建议提前准备,我一般是周五下午检查,然后一般是周四晚上写,那次状态机由于难度陡增,周四晚上在小伙伴帮助下弄到一点多,第二题天上午起来继续仿真,好在下午上课前弄好了。但是还是累得半死。(不过总体来说也就两三次比较难,大部分还是很简单的。。。)
最后的实验大作业是重点,拉差距的地方,大佬就是各种外设,比如贪吃蛇,闹钟,真人CS,弹球游戏,连连看(如果是大佬,可以尝试这些,一般加外设,界面做得好一些就能拿18+)。不过不加外设也不意味得分低,我同学做的电梯比较有新意,也拿了17(无外设)。一般如果是简单的游戏,比如烂大街的打地鼠,一般是12—13。
PS:我做的就是烂大街的打地鼠。。。。不过多加了个存储系统,可以显示每次游戏结束的得分,排名以及历史记录,其实也就是多用了寄存器,排序之类的小知识,最后给了15,希望老师能比较看好我的实验报告,最后给个优秀23333
Verilog靠自学。大作业好多用外设的,然而最后助教评分还是看复杂度…如果设计没有新意,外设也没有特别占优势。倒不如做好自己会的那点东西,或者比较有趣的东西,不要为了外设而外设
verilog就是门玄学,莫名其妙就报错了,不知道改了哪就又能成功运行。。虽然每次作业都能完成,但还是对verilog半懂不懂。。
吐槽: ①开发板反面是交大校徽,怀疑是交大淘汰了nexy2和3之后低价转让给蜗壳的