湖南大学工训 I²C 实验速通指北
本文最后更新于 333 天前,其中的信息可能已经有所发展或是发生改变。

I²C/I2C通信接口测试实验、EEPROM读写实验、HDL语言与验证平台,随你怎么叫,反正恶心程度是不会变的。好在经过五十分钟的漫长验收,好歹是通过了,但还是恶心得不行,所以为了让后面的同学摆脱痛苦,特作此文。之所以叫它指北,是因为我其实不怎么会,也不能帮你理解这个项目的内涵……

由于版权原因,此文章不含实验代码、PPT、软件等的直接下载,不过会有一些指引。
不适用于任何其他高校课程,不保证完全适用于2023年及之后的课程。不过照着工训中心的摆烂水平,后面应该没啥区别。

以下内容中的“学习通”,若无特别指出,均为”电子测试平台2-HDL语言与验证平台“课程。

有什么可以参考?

  • 学习通资料-“IIC总线通信接口测试实验(参考)”(综合指导)
  • 章节3-“I2C EEPROM读写原理-24C02.pptx”(I2C原理)

软件从哪里下载?

要下载的主要就是两个软件:Quartus和ModeSim。虽然这两个软件都有Windows版和Linux版,但建议在Windows环境中使用。

Quartus 9.0 Subscription Edition:用于下板子,不下板子不给验收。也是上个学期“电子与电路学”课程使用的软件。可以在超星学习通“电子测试平台与工具1”课程资料,或“电子与电路学”的”软件的安装与使用“章节中下载。Linux版本请自寻。

ModelSim:老师可能要求低版本,但实测下面的版本不会有任何问题。ModelSim Intel FPGA Starter Edition是Intel定制的ModelSim版本,如果Quartus没有附带,可以使用本版本,完全免费,没有许可证问题。Windows版本在这里下载,而Linux版本在这里下载。在页面的”Individual Files“里可以找到下载链接,安装时务必选择免费的Starter Edition。

代码从哪里搞?

分三部分:设计文件、测试文件和EEPROM模型文件。

设计文件就是i2c.v,测试文件就是i2c_tb.v,都在学习通章节截图中有;稍晚的时候可能在学习通资料中上传“IIC总线通信接口测试实验(参考)”文档,也可以照着这个版本来。前者的设计文件是三段式状态机,后者是一段式。如果搞不到大佬的代码,那就自己照着图敲吧(优选后者版本),如果有GitHub Copilot内测资格,使用其自动补全,效率会高很多。

i2c_tb.v有一处错误:在读取测试后没有复位op_done就开始写入。解决方法是在第一个$display后加上三行,让其复位:

rstn = 1'b0;
repeat(5) @(posedge clk)
rstn = 1'b1;

EEPROM模型文件是M24XXX开头的三个文件,可以在学习通资料栏目中下载。

文件组织成两个文件夹:

  • I2C_Rtl,存放i2c.v;
  • I2C_Tes,存放剩余的四个文件。

如何使用ModelSim仿真?

打开ModelSim后,在图中界面点击Jumpstart,然后点击Create Project。

创建项目窗口

name,没中文就行,路径最好选你刚刚保存代码的位置,也不要有中文。然后点击OK,在”Add items to the project“对话框中,选择”Add Existing File“。把刚刚的文件统统加进去,勾选”Reference from current location“,然后点击OK。

主界面

order无需太在意。在这里点击上方的Compile,然后再点击Compile All,可以将源代码全部编译。这只证明源代码没有基本的语法错误,若出现请点击Compile – Compile Summary自查,需要保证五个勾都是绿的。

通过之后点击上方Simulate – Start Simulation,然后选择work->i2c.tb(根据刚刚设置的working library不同而不同,此处为默认),点击OK,如图。

仿真模块选择

进入仿真界面后,右键点击左侧栏的i2c_tb,点击add waves。然后将上方的1ps(Run Length)修改为2ms。完成后点击2ms右边的Run按钮,仿真完成后若弹出代码窗口可以点其右上角关掉。最后的波形应该是这个样子:

仿真界面

如何下板子?

上个学期应该都用过Quartus吧,太详细的使用我就不再赘述了。

在Quartus 9中新建项目,芯片选择Cyclone II EP2C5T144C8。在项目中添加一个Verilog文件,只添加i2c.v。编译,然后分配管脚。

管脚分配方案见下:

管脚分配方案

然后直接用device programmer写入板子就行了。

具体的板上操作,请参考“IIC总线通信接口测试实验(参考)”PDF第9页。

如何过验收?

因为知识点实在太多太杂了,又不可能解释一遍代码,所以主要讲一些策略,以某刘姓老师为例。

最硬性的要求,是下板子并仿真出正确的波形。

基础知识不会没有关系,反正别人也不会。如果不知道回答什么,就保持沉默,或者顺着老师啊对对对。即使会答,也别太积极,防止拉高老师预期。

如果你有足够的时间,可以等到最后老师把标准降低到足够低(取决于前面多么摆),然后再去验收。但验收非常慢,需要做好心理准备。


最后,希望本文能够一定程度上帮助你减轻工训痛苦。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇