7月 11

硬件实验–模型机与程序运行

硬件基础实验二 实验报告 一、指令集结构 该模型机要实现以下指令: 指令格式 功能 装载存储指令 LDA 0x20 Byte R5<-Mem[Byte] STA 0x40 Byte Mem[Byte]<-R5 运算指令 ADD 0xC0 Byte R5<-R5 加 Mem[Byte] AND 0xE0 Byte R5&l … Continue reading

7月 07

数码管显示VHDL设计

从同学那里拷来的代码,VHDL设计数码管显示电路: 对比自己以前写的数码管显示的vhdl代码,发现自己简直弱爆了,没有一点整体设计思想,单纯的把电路图各个部件翻译成vhdl代码,然后在连接起来,而上面的代码是整体描述了数码管显示电路,其实数码管显示电路还是比较简单的,输入两组,输出两组。输入就是一个clk时钟信号,还有要显示的数据。输出就 … Continue reading

4月 24

用移位寄存器实现序列发生器

一、序列发生器电路图 基本部件全部采用lpm定制。 lpm_shift为右移位寄存器,为了直观的仿真和在数码管上显示, 用左移位寄存器是更好的选择。   lpm_shift是LPM定制的7位右移位寄存器,带串入串出和并入并出。 load端为置数端,当load端为1时,寄存器置数,并行输出为data[6..0],当load无效,即 … Continue reading

4月 20

序列检测器加数码管显示设计

如果按照实验书上一步步做到也不是很难,可是老师要求要在数码管上显示,这对我来说就有些麻烦了,向来讨厌数码管显示。 硬着头皮做了近10个小时了,总算是仿真正确了,至于硬件测试,希望不要在有什么乱子。 序列检测器是时序数字电路中非常常见的设计之一。它的主要功能是:将一个指定的序列从数字码流中识别出来。接下来就以设计“01101”这个序列的检测 … Continue reading

4月 18

序列检测器

感觉这个说的比较清楚: 序列检测器是时序数字电路中非常常见的设计之一。它的主要功能是:将一个指定的序列从数字码流中识别出来。接下来就以设计“01101”这个序列的检测器为例,说明Verilog HDL语言的具体应用。设X为数字码流输入,Z为检出标记输出,高电平表示“发现指定序列”,低电平表示“没有发现指定的序列”。设输入的码流为“0011 … Continue reading

4月 18

模405计数器数码管显示

模405计数器加位选和段选之后可以在数码管上直观的显示。 下面是顶层设计,加入相关底层文件即可: RTL调试 仿真:

4月 18

Quartus实体名不能以数字开头

写7段译码器,用了7seg_7的实体名,编译不能通过,报错如下: 可能是Quartus实体名不能以数字开头,改成seg_7之后就可以了。

4月 17

任意进制计数器VHDL设计

花了很长时间,走了很多弯路,终于完成了模405计数器的设计。 首先设计一个具有同步置数,异步清零,同步使能,进位输出的10进制计数器: 这里用了lpm定制,注意选择模10. 顶层设计: 开始使用了置数的方法,但是发现由于百位到9时才会有时钟上升沿,因此,到405后百位不会按预期置数,而是保持4,所以会看到这样的计数序列:403,404,4 … Continue reading

4月 17

关于同步清零和异步清零

整理一下搜集来的资料: 同步清零与异步清零的区别就在与清零操作是否需要时钟脉冲的配合。通常异步清零只要有清零脉冲清零操作就开始执行;而同步清零当有清零信号时还必须等时钟有效跳变沿到来时才能进行清零操作。 在VHDL语言中,异步清零: 同步清零: 其中: clk’event是指信号clk是否发生跳变,若发生了则返回ture,否则 … Continue reading