Verilog学习笔记——分频器
分频器应该是verilog里最常用的一个模块了,原理也很简单,就是设置一个计数器,设置在计到指定的分频数的一半后反转输出波的电平,以实现指定数目的分频,以下是一个100,000分频的例子:(这个模块本来是用于将一个100mHz的晶振信号转化为周期为1ms的信号) module ms_clk( input clk_100mhz, //输入时钟信号100mHz output reg clk_ms ); [...]
分频器应该是verilog里最常用的一个模块了,原理也很简单,就是设置一个计数器,设置在计到指定的分频数的一半后反转输出波的电平,以实现指定数目的分频,以下是一个100,000分频的例子:(这个模块本来是用于将一个100mHz的晶振信号转化为周期为1ms的信号) module ms_clk( input clk_100mhz, //输入时钟信号100mHz output reg clk_ms ); [...]
突然发现好像很久没有写过博客了…… 正好最近在上微机课,稍微学了一点汇编,实验课做了个小程序,就正好来水一篇文章( 代码和逻辑还是比较简单的,也加了很多注释,应该可以看懂我就不细讲了( .486 DATA SEGMENT USE16 password DB 'B18020511$' [...]
咕咕咕了很久,终于想到要来写第二篇学习笔记了……这次的实验目的是使用DAC0832来产生自定义波形。 概述 首先是这次要用到的两个器件:DAC0832和TL084,通过由这两个器件组成的电路我们就可以达到将数字信号转换为模拟信号的目的,来看一下电路图: 图上标注为DAC0830,这两款芯片使用方式相同 对于电路图的连接不再做过多赘述。我使用了DAC0830的直通模式来进行实验因为这样最方便。在正确连接的情况下,FPGA所需要做的就只是按照预期的波形输出对应的电压值。不过要注意的是,DAC0832的反应时间约为1 μs,所以如果你给的数值变化速度高于了这个值,那可能无法看到波形正确显示。不过以这个模块的精度,我想也完全用不上这么精确的波形输入…… 接下来就进入最关键的部分:通过FPGA输出波形数值给DAC0830。因为我希望能够输出一个可调的波形,所以我将使用ROM来存储希望显示的波形,存储方式就是在一个波形上等间距地取一定数量的点,然后将这些点按顺序保存到ROM中,这样就只需通过固定频率的时钟按顺序读出这些点,就可以输出我们想要的波形了。当然,这种做法所输出的波形一定是会有失真的,所取的点越密集所产生的失真也越小。同样波形的精确度还受器件以及电路等多种因素的影响,所以想做一个高精度的波形发生器也是件很麻烦的事情…… 正片 1.配置ROM 那么接下来就开始正式编写模块了,首先要做的就是将ROM加入工程中。ROM可以直接调用Vivado中的IP,做法很简单,在左侧工具栏选择IP [...]
2019年的电赛终于结束了,今年的电赛题目真的是神仙出题,对于我这种传统自控选手充满了恶意。但无奈与自己技术有限,最后我们队还是选择了电磁炮这道题。然后,我们从七夕节开始爆肝了四天三夜……打了四天三夜的炮 由于题目比较长,在这里我不在正文部分把题目放出来了,真的不是我懒得排版有需要的可以直接下载PDF查看题目。不过想必有兴趣看这篇文章的都应该知道题目吧…… 说实话,在看到这个题目的时候,我的内心是崩溃的……尼玛电磁炮是什么啊???这玩意真的是随随便便就能搭出来的吗???整个人瞬间就懵了,或者说整个实验室瞬间就懵了,吐槽声络绎不绝……好在队友给力,不一会就从网上翻出来了电磁炮的电路图(图我忘记存了,不过网上这种图一堆一堆的……)然后火速坐地铁去了器件店里买齐了所有的材料,大概是在我把图像识别写完之后,我们组的电磁炮居然就已经可以运行了,而且好像一下就能发射了???这么说是不是显得我特别菜的样子……不得不说,大佬牛逼!虽然我们搭的电路还很粗糙,但是花了几个小时就已经把我觉得最为棘手的电磁炮部分搞得差不多了,感觉我们这次从起跑线上就很顺利了。 闲话就说到这里,接下来我会通过列出一个个问题的方式并解决的方式来记录我的这次电赛经历。语文学渣,叫我写记叙文的话还是免了吧…… Prob.1 目标追踪 看到这个题目,我首先想到的就是目标的追踪问题,因为电赛前一阵子我刚好在学图像处理方面的知识。这次题目一出来,我瞬间就爽了,我手边刚好有一个不错的颜色识别的程序,只需略加改动,我们的目标追踪系统就完成了,而且连串口的配置我都在之前就弄好了。因为这次的图像识别还是比较简单的,所以我这边只贴出我使用的代码,如果想学习的话还是建议去看看opencv的教程。 图像识别代码基于树莓派上运行的opencv,使用树莓派摄像头模块:(具体的代码实现就不讲解啦……看了注释应该就懂了) #encoding:utf-8 import [...]
我是在很认真的说这件事! 后年寒假,我一定要去南极玩!!! 看了《比宇宙更远的地方》,再想想自己过到现在的生活,真的太平淡了也没说平平淡淡不好啦~。看了这部番之后,真的觉得南极就是这样一个能让人释放青春的地方。想想自己也快20岁了,就是想做一件别人不敢想的事情。或许这样的机会以后还会有很多,但就是现在,就是此刻,南极非去不可!
好久不见,我又回来开新坑了。老挖坑人了。 这学期开始接触数电了,感觉比模电好玩多了模电是什么废物玩意,而且因为数电极强的逻辑性以及又fpga这种可编程器件的存在,所以我觉得数电比模电更容易上手,而事实也是现在数电的发展远比模电强大。 闲话不多说,接下来我来介绍一下我设计的电子钟模块,它通过输入一个1Hz的时钟信号来达到计秒的功能,并且具有校准时、分、秒以及清零的功能。具体的实现方法是在内部设置了两套存储器,一套用于存储时钟信号计算的秒数,另一套用于存储用户自定义的校准时间,然后将两套存储相加即可输出最后的时分秒信号。 原理非常简单,算是我学习Verillog以来做的第一个模块了吧,接下来贴出代码:(添加了代码注释) module clock( input clk,h_ad,m_ad,s_ad,res, //输入clk为1Hz output [...]
今日(7月18日)上午,日本京都著名动画工作室“京都动画”发生一起纵火攻击事件。至今日22:00左右,证实至少有33人死亡。当地媒体说,有一名男子上午前往这家动画工作室,并在建筑物周围喷洒汽油。警方表示嫌犯是一名41岁男子,已被逮捕并因受伤被送往医院。——BBC中文 愿逝者安息🕯️,希望京阿尼能撑过难关。
提示:本文中的大部分名词均会有超链接指向其解释页面,如果有不懂或需要进一步了解的可以前往查阅。 关于太空工程师这款游戏我就不在这里详细介绍了,有想要了解的可以前去steam查看: 就我这几天玩下来的感觉来看,这确实是一个很棒的宇宙沙盒游戏,玩家在这个世界中拥有100%的自由度,并且一切你所见到的东西都是可破坏的(当然,由于这么高的自由度,游戏甚至没有为玩家设立一个游戏目标,所以可能有些玩家在玩这个游戏的时候会有一种“不知道要干嘛”的感觉)。在这个世界中,你可以完全按照自己的构想来建造舰船(当然游戏在这方面还是有一些限制,不过在这种时候可以去找找看有没有mod能解决问题),你可以驾驶着飞船横扫银河系。总之,一切你能在一个沙盒游戏里想象得到的游戏元素几乎都可以在这个游戏中找到。而这个游戏,甚至允许你直接在游戏中加载自定义脚本。通过这些脚本,你可以操作几乎一切方块。当然,不同于大部分游戏那样把游戏内脚本简化成了伪代码或是做成了只需要画流程图( 或其他类似的东西 )就行的可视化编程,这个游戏中的脚本编写采用的是如假包换的编程语言——C#(C Sharp)。 话不多说,我们现在就开始学习在太空工程师中,脚本的编写方法。 开始 无论多么伟大的程序员,都是从Hello World开始的。 [...]
感觉自己好像很久没有更过博客了呢……今天来记一点东西。 在期末考试复习之余,闲得无聊去研究了一下网站链接的美化问题,本来以为搞起来会很麻烦的,结果试了一下之后发现还挺简单的。 这个方法可以随心所欲的更改网站中显示的url,把所有的index.php等全部隐藏起来,让网页的url看起来更舒服。 配置方法很简单,参见以下代码: #Nigix:在服务器配置的server{...}内添加: location / { if (!-e [...]
其实严格来说这并不算是软件……(但是懒得弄新分类了) 这个插件的开发目的,就如插件名称所说,是要开发出一款插件来自动生成我的追番列表页面。(感觉自己又开了一片大坑) Sinon的追番列表 GitHub 更新日志 V1.2.1 添加了编辑番剧信息的功能获取番剧信息时,若中文名为空,自动将原名移至中文名一栏 v1.2 添加了在插件内直接搜索番剧的功能添加了后台按状态筛选番剧的过滤器 v1.1.4 [...]