标签: microprocessors

有没有一个verilog教程,你在其中构建一个非常简单的微处理器?

我是一名希望学习verilog的程序员.

什么是令人惊讶的整洁将是一个教程,其中一个构建一个非常干净的设计的微型微处理器,像英特尔4004,然后继续实际使用一个fpga并使其闪存LED订购.

有这样的教程吗?

如果没有,我可能会尝试写一个,因为我尝试这样做.有没有人对我可能利用的资源有任何建议?例如,很好的开源verilog编译器,调试工具,模拟器,verilog教程,便宜的fpgas和编程工具,LED面包板等.

verilog fpga microprocessors

12
推荐指数
3
解决办法
1万
查看次数

指令长度可变时的指令解码

以下是一些说明及其相应的编码:

55                      push   %ebp
89 e5                   mov    %esp,%ebp
83 ec 18                sub    $0x18,%esp
a1 0c 9f 04 08          mov    0x8049f0c,%eax
85 c0                   test   %eax,%eax
74 12                   je     80484b1 <frame_dummy+0x21>
b8 00 00 00 00          mov    $0x0,%eax
85 c0                   test   %eax,%eax
74 09                   je     80484b1 <frame_dummy+0x21>
c7 04 24 0c 9f 04 08    movl   $0x8049f0c,(%esp)
Run Code Online (Sandbox Code Playgroud)

今天的微处理器通常是32位或64位,我猜他们通常以4字节或8字节的块从内存中读取数据.但是,指令可以具有可变长度.微处理器如何解码这些指令,为什么它们的长度不一致以便于实现?

assembly microprocessors

11
推荐指数
2
解决办法
6471
查看次数

处理器(CPU)和微处理器有什么区别?

计算机体系结构意义上的"处理器(CPU)"和"微处理器"有什么区别?这些用语令我困惑.

microprocessors

10
推荐指数
1
解决办法
1万
查看次数

是否可以将整个数组保存在cpu寄存器中

在下面的代码中,

int main( )
{
    register int arr[4];
    /* ... */
}
Run Code Online (Sandbox Code Playgroud)

是否有可能在某些cpu寄存器中分配'arr'.(考虑cpu有4个或更多寄存器).

或者编译器会忽略数组的寄存器存储类.

c compiler-construction embedded microcontroller microprocessors

9
推荐指数
4
解决办法
3540
查看次数

RISC-V指令集中的FENCE指令是什么意思?

在浏览RISC-V ISA时,我在内存模型部分(FENCE指令)中看到了一条指令.这究竟是什么意思?

compiler-construction processor microprocessors riscv

9
推荐指数
2
解决办法
3461
查看次数

多核处理器:每个"核心"是以全时钟速度还是全时钟频率的某个部分运行?

假设你有一个(1)Intel/AMD x86-64 bit 2 GHz 8核处理器.

8个内核中的每一个都是在完整的2 GHz运行,还是每个内核运行的时间是整个2 GHz时钟的一部分(例如250 MHz)?

architecture intel microprocessors amd-processor

8
推荐指数
2
解决办法
8009
查看次数

8086/8088中有多少个寄存器?

我参加了计算机体系结构课程,我理解处理器有32个寄存器,每个32位.现在我正在学习计算机体系结构课程,其中我读到8086只有8个寄存器.但是我读过的本书和这个网站显示了很多寄存器.我对8086和8088的寄存器感到困惑.请帮帮我.谢谢

注意:

我很好地理解了不同处理器中不同的寄存器大小.我只是对寄存器的数量感到困惑.谢谢

cpu x86 cpu-registers microprocessors

8
推荐指数
2
解决办法
5万
查看次数

7
推荐指数
4
解决办法
2万
查看次数

使C源中的大常量更具可读性?

我正在为微处理器编写一些代码.
它有一些大的关键常数.

#define F_CPU 16000000UL

在这种情况下,这是CPU频率.在赫兹.

实际上,如果没有手动在数字上标记光标,则很难判断它是1,600,000,160,000,000还是16,000,000.

如果我在数字中加入逗号#define F_CPU 16,000,000UL,它会截断常量.

我使用了一些具有特定数字分隔符的深奥语言,旨在使大数字更具可读性(例如16_000_000,主要是用于MCU的语言).大型"神奇数字"在嵌入式内容中相当普遍,因为它们需要描述MCU如何与现实世界对话.

C中有这样的东西吗?

c embedded readability microprocessors

7
推荐指数
3
解决办法
1472
查看次数

x86中的方向标志

我无法理解方向标志是如何工作的x86.在我的演讲中的文本说,它递增递减目的寄存器但这没有任何意义与它的名字.有人可以解释它的作用吗?

x86 assembly microprocessors eflags

6
推荐指数
2
解决办法
5596
查看次数