我爱学习,
学习使我快乐,
We cannot predict the future, but we can invent it.

大作业评分流程图(做一回恶人w(゚Д゚)w


st=>start: 2018年5月29日晚
moss=>operation: MOSS查重
moss_cond=>condition: 可疑?
comp=>operation: 人工对比
test=>operation: 当面答题/写代码
exe1=>operation: 运行代码
exe2=>operation: 运行代码
exe3=>operation: 运行代码
nop1=>operation: NOP
nop2=>operation: NOP
nop3=>operation: NOP
nop4=>operation: NOP
nop5=>operation: NOP
nop6=>operation: NOP
nop7=>operation: NOP
pas1=>condition: 通过?
pas2=>condition: 通过?
pas3=>condition: 通过?
repo=>operation: 看报告
rep2=>operation: 看报告
rep3=>operation: 看报告
scor=>operation: 打分
e=>end
con1=>operation: 联系当事人
con2=>operation: 联系当事人
cheat=>operation: 作弊挂科

st->moss->moss_cond
moss_cond(no)->exe1->pas1
moss_cond(yes)->rep3->con1->test->nop5->nop6->nop7->cheat->e
pas1(yes)->nop1->nop2->nop3->nop4->repo->scor->e
pas1(no)->rep2->exe2->pas2
pas2(yes)->repo->scor->e
pas2(no)->con2->exe3->pas3
pas3(yes)->repo->scor->e
pas3(no)->cheat->e

阅读全文...

Modelsim 基础使用教程

Vivado自带的仿真比较垃圾,工程非常大时仿真速度明显慢于ModelSim,有时还有奇奇怪怪的bug。

一、ModelSim 安装

modelsim-win64-10.4-se 下载、安装、破解全攻略 - CSDN博客

上面这个博客已经写得非常明白了,下载链接已失效,这里放一个:

链接: https://pan.baidu.com/s/1X0C5tYDukK04fq7j2dqdZg 密码: apwz

二、使用教程

新建工程 - 添加代码 - 编译 - 添加仿真配置 - 开始仿真 - 添加信号到波形 - run all。

阅读全文...

学校提供的科学上网 Chrome 配置教程

首先这个是 真· 科学上网,只能使用谷歌搜索谷歌学术谷歌专利谷歌地图等谷歌应用。

网络中心发的三篇微信:

  1. IPv6助力学术科研跨越障碍

  2. IPv4宝刀未老再助学子站在巨人的肩膀上

  3. IPv4学术代理服务支持的服务

三篇文章的备份:本博客 备份1备份2,archive.is 备份1备份2备份3

第1篇是说,在校园网内,有IPv6时,可以无障碍访问谷歌搜索、谷歌学术。

第2篇是说,有时候无法使用IPv6,那就用学校IPv4的代理服务。如何使用?文中说Firefox浏览器可以在设置中添上那个pac地址,然后打开谷歌,在弹出的窗口认证 NetID 即可。

那Chrome如何设置呢?Chrome 浏览器需要安装扩展程序来管理浏览器的代理,例如超级好用的 SwitchyOmega

阅读全文...

IPv6 hosts 使用教程

本文建立在您能访问IPv6的基础之上,国内的IPv6大部分是教育网,还有部分地区的运营商能提供IPv6。使用IPv6可以实现科学上网,例如修改 IPv6 hosts(本文)、XX-Net(这个以后再补)。

本文粗浅地分析了Github上的一个开源项目 lennylxx/ipv6-hosts 。如果想使用IPv6 hosts,可直接下载该项目中的hosts文件(对着我右键另存为),注意名字不是hosts.txt,而是hosts,没有扩展名。Windows系统替换掉 C:\Windows\System32\drivers\etc\hosts 文件,Linux系统替换掉 /etc/hosts 文件。杀毒软件通常会认定 hosts 文件是病毒,不慌,忽略警告即可。如果想深入一些了解,可看看下文。

阅读全文...

Sandboxie 沙盘使用教程

Sandboxie用途:

在你的电脑上运行你不太信任的软件,甚至病毒,访问不太信任的网址等,

或者不想留下软件的使用痕迹,

或者只是临时试用一下某个软件,希望以后不想用的时候可以完全卸载,任何痕迹都不留下,

或者想让新版和旧版软件共存。

场景一

在Sandboxie中使用360网络诊断,他判断我们的hosts有些异常,点360的修复以后:

C:\Sandbox\hujy\DefaultBox\drive\C\Windows\System32\drivers\etc\hosts
360只是修改了沙盘里的hosts,沙盘里的hosts被360加上了#号注释。

C:\Windows\System32\drivers\etc\hosts
真实系统里的hosts,没有被修改。

阅读全文...

固化程序到FPGA开发版的Flash

FPGA程序的固化。也就是将FPGA的配置文件(固化用的配置文件是二进制文件,仅bin文件)烧写到板载Flash中,实现上电自启动。

参考:

简洁一点的:

FPGA编程- 使用Vivado固化BIN文件

完整的、多种方法的:

【Arty-A7入门连载】Vivado与SDK程序固化

2018-05-02_213116.png

2018-04-14_221316.png

阅读全文...

Verilog 语言中 if else 语句完整与否对电路的影响

参考:
(筆記) always block內省略else所代表的電路 (SOC) (Verilog) - 真 OO无双 - 博客园

组合逻辑

module u_else(
    input en,
    input a,
    input b,
    output reg c
    );

    always@(*)
      if (en)
        c <= a & b;

endmodule

module u_else(
    input en,
    input a,
    input b,
    output reg c
    );

    always@(*)
      if (en)
        c <= a & b;
      else
        c <= c;

endmodule

完全相等,都会产生latch锁存器

2018-04-13_210023.png

此图上半部分是elaborate(直译:阐述?)的电路图,下边是Synthesis(综合)的。

LDCE 是 Transparent Data Latch with Asynchronous Clear and Gate Enable,xilinx的库里有,详见>>

阅读全文...

Machine Learning - Andrew Ng - 学习笔记

这是著名的机器学习入门公开课,作者吴恩达,在 Coursera 上可以上课并完成课程作业。

一、线性回归 Linear Regression

2018-04-07_090614.png
Cost function 损失函数、误差函数,
其中 m 是 number of training examples

2018-04-07_090626.png
Hypothesis hθ(x) 假设函数、预测函数

2018-04-07_090646.png
Gradient Descent 梯度下降法更新 θ,其中 α 是学习因子(learning rate),α 后面是梯度 gradient,也就是损失函数对 θ 的偏导数。

2018-04-07_091604.png
Normal Equations 正规方程
可以直接算出线性回归的解析解,适用范围窄(仅线性回归)、计算量大。可以作为标准答案,评估上面梯度下降法的结果。

阅读全文...

Photoshop 批处理 压缩图片

虽然随便一搜就能搜到,还是记录一下,很方便。

2018-04-01_110905.png

日常谷歌吹:

谷歌第一条结果给出了Adobe官方的教程,而且提取了主要信息,以至于不用打开网页我的确只看上面这几句就完成了任务。
百度的第一页10个搜索结果里7个是自家产品:百度经验和百度知道,而且排在第一位的百度经验是不符合搜索内容的答案,教的是快捷批处理,而非批处理,完全不是新手教程,而是已经会用批处理的才能看懂,应该可以起到让新手一头雾水、望而生畏的效果。
而回到谷歌,第二条是百度经验,教的是完整的批处理+快捷批处理的使用。谷歌第一页结果的来源比较多元,而非百度,几乎是百度自家站内搜索了。

谷歌的搜索算法能做这么好,令人佩服

使用场景

忘记把拍照画质调成“中”了,默认是“高”,以致于每张4000px*3000px照片体积为3~4M,太大了,不便于存储和分享。于是批处理,将他们质量调低一些。

相机拍了raw的照片,想批量转成jpg分享出来。

……

不使用批处理

2018-04-01_102839.png

用PS打开图片,然后另存为,将画质调成中即可。

阅读全文...

h264 硬件代码 Vivado 编译

【教程】如何在Vivado中添加Digilent board files

2018-03-28_105719.png

选择器件

2018-03-28_113737.png

添加代码

2018-03-28_113433.png

添加综合?时的 include files search path

2018-03-28_113457.png

添加仿真时的 include files search path

2018-03-28_113511.png

添加完成后,Messages 窗口只有这个模块重复定义的警告。可以考虑随便删除一个,不删也行。打开代码可以看到,代码形式上略有不同,实际一样。

2018-03-28_115108.png

我们添加仿真文件,并且把tb_top.v复制进我们的工程目录,因为我们要修改它。新建一个tb_top仿真,原先的无意义的名字sim_1可以删掉。

2018-03-28_115237.png

然后就还要做一遍添加 include files search path 的工作,因为这个是不同的仿真集不同的。

2018-04-10_101433.png

注意 top 有没有设置错,应该设置 tb_top.v 为仿真的顶层。

2018-03-28_115644.png

然后会发现找不到 tb_top 里 include 的文件,这个时候就应该去原代码的仿真文件夹里复制。

2018-03-29_161127.png

把 Vivado 报 warning 的找不到的代码,复制到 tb_top.v 所在的文件夹里,像上图这样 E:\Documents\Vivado\h264\ip_sim\ip_sim.srcs\tb_top\imports\top。放在这里的原因是 ./ 就表示当前文件夹。./bench/ime_dump.v 表示当前文件夹中 bench 文件夹里的 ime_dump.v。添加完如果还是提示 critical warning 那就手动更新一下。

2018-04-10_101501.png

除了代码要include的文件位置,还有仿真输出文件的位置。在Vivado里,仿真的根目录,也就是图中的./目录应该是这个目录:prj_root/prj_name.sim/sim_name/behav
举个例子
E:\Documents\Vivado\ls232\vivado_prj\vivado_prj.sim\sim_1\behav
E:\Documents\Vivado\ls232\vivado_prjprj_root
vivado_prj.simprj_name.sim
sim_1sim_name

我们前面删掉了 sim_1 新建了 tb_top,略智障的 Vivado 没有帮我们建这几个目录,所以这会儿去找的话找不到。我们可以按照这个规则建目录并且把文件放进去,但不太推荐,好像每次仿真他都会清除 behav 目录里的文件。所以建议把上图中报错的目录 ./bench/ime_dump.v 改一下,例如改成 ../../bench/ime_dump.v,这样就相当于 prj_root/prj_name.sim/bench/ime_dump.v。所以就把文件拷到工程根目录这个文件夹就行。