自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (5)
  • 收藏
  • 关注

原创 乒乓FIFO源代码

module gm_fifo_pingpang( input wire clk , input wire rst_n , input wire [7:0] data_in , input wire wr_en , output reg fifo1_wr_en , output reg fifo2

2021-12-07 15:50:52 556

原创 DMA原理&AHB-DMA控制器工作过程总结

DMA(direct memory access),直接存储器访问是用来数据搬运的技术,在没有DMA的情况下,数据的访问要通过CPU一条一条执行指令来实现,这种访问方式不仅速度慢,而且占用cpu算力。对于高速外设,数据传输的速度必须要快,否则可能出现丢包错误,基于这种情况,出现了DMA技术,DMA是一个搬运工,采用DMA的传送方式不需CPU干预,外设和存储器之间的数据访问可以在DMA控制器(DMAC)的控制下直接进行,少去了逐条指令执行的麻烦,释放了内核并使传输效率大大提高。DMA主机有控制AHB总线的权利

2021-10-29 16:12:28 5853 1

原创 apb外设怎么分配地址

haddr是32位的地址信号,对地址进行译码之后产生一个AHB_TO_APB的选择信号,这个选择信号是用来选择APB系统的。我的apb系统选择信号是0x4000_xxxx,即只要高16位是4000就选中APB系统。高16位选中了APB系统,再根据地址信号的[15:12]这四位地址选择APB外设,这4位地址的范围是0000-1111,这就是为什么只能有16个apb外设。选择APB外设的译码逻辑在apb_slave_mux这个文件,就是以下这段代码,DECODE4BIT就是地址的第[15:12]位。

2021-08-26 17:46:39 1657 2

原创 不使用总线矩阵的CortexM3最小系统搭建(AHB外设有ITCM,DTCM,DEFAULT_SLAVE和AHB_APB桥,APB外设只有一个UART)附整个工程

1.1. 实验任务:不使用总线矩阵搭建系统,系统挂载APB_UART、AHB_SRAM等外设。1.2. 实验所需模块CortexM3.v -----------------------------------------顶层cortexm3ds_logic.v -------------------------------M3内核cmsdk_ahb_slave_mux.v ---------------------AHB外设选择cmsdk_apb_slave_mux.v ------------

2021-08-19 11:13:16 1968 1

原创 SOC开发流程入门(VIVADO+KEIL软硬件协同设计)

用FPGA配置成SOC之后,他还只是个空壳子,SOC的工作依赖一条条指令,生成指令是软件干的事,你需要用C或汇编写程序,写好的程序通过编译生成汇编代码,汇编代码通过arm指令集的对应转换,生成机器码。将机器码存在SOC的存储器,这时候SOC就能根据指令执行了

2021-07-15 19:45:44 6664 4

原创 cortex_m0架构(顶层&AHB_Lite接口)

2021-07-15 19:32:32 684

原创 vivado fpga简单入门--led闪烁 创建工程+代码输入+添加引脚约束完整具体流程

1.把板子连到电脑。然后打开vivado,创建工程,如图2.next3.输入工程名,选择工程目录,然后next4.next5.creat file,6.输入文件名 然后点击ok7.next8.next9.选择你的板子型号,然后next10.finish11.如果跳出来这个界面,点击okyes双击把下面这段代码贴到工程里module led( input sys_clk , input sys_rst_n,

2021-07-13 23:39:06 5132

原创 基于 arm 设计开发工具包的 Arm Cortex-M3 处理器设计(第二章:示例微处理器组成及各个Verilog文件功能及作用)

本实例系统是一个简单的微处理器设计(你可以按照自己的需求配置处理器)。它包含以下内容:•单个Cortex-M3或Cortex-M4处理器。•内部程序存储器。•SRAM数据存储器。• Boot loader.•外设:几个定时器timer, GPIO ,UART, 看门狗定时器;•调试连接。顶层明框图各模块名称说明cmsdk_mcu示例微控制器。这个层级包含行为记忆和时钟生成组件。cmsdk_mcu_system微控制器设计的综合层次。实例化Cortex-M3或

2021-07-12 22:13:24 1856 1

原创 基于 arm 设计开发工具包的 Arm Cortex-M3 处理器的示例系统级设计(第一章:文件目录&AHB组件&开发平台)

设计工具包中文件目录目录名目录内容logicalVerilog组件包括AHB-Lite和APB基础组件、外设、APB子系统以及AHB-Lite和APB协议。systems示例系统的设计文件、测试台文件和模拟设置文件。implementation示例系统的合成设置文件。这些文件支持Synopsys设计编译器。software软件文件。其中包括:•CMSIS兼容的C头文件。•示例系统的示例程序文件。•设备驱动程序示例。document文档文件。cor

2021-07-10 14:24:17 522 1

原创 计算机体系架构学习笔记

RISC:精简指令集,低功耗低性能,以ARM为代表。CISC:复杂指令集,高功耗高性能,以INtel为代表。一段C代码如何变成可执行的代码hello.c >> 预处理器 >> hello.i >> 编译器 >> hello.s >> 汇编器 >> hello.o + printf.o >> hello 过程如下图计算机系统层级:用户模式(User Mode): 在用户模式下,代码没有对硬件的直接控制权限,也不能

2021-07-06 12:03:00 540

原创 用quartus搭建soc-串口发送学号完整流程(软件+硬件)

第一步:打开quartus工程:路径在quartus/prj;第二步:在Block_RAM.v中修改路径(你的hex文件位置)第三步:点击编译(过程较长)第四步:找到要下载到板子的文件,然后选中第五步:下载至此quartus硬件部分已完成,接下来是软件部分:第一步:打开keil工程第二步:在main函数修改自己的学号,然后编译第三步:打开串口调试助手第四步:跑软件,记得提前把串口波特率调到115200...

2021-07-05 21:09:06 1583

原创 Cortex-M3的存储器系统

Cortex-M3 的存储系统架构与传统的 ARM 处理器有很大的区别。 Cortex-M3 处理器采用哈佛( Harvard)结构,拥有独立的指令总线( I-Code)与数据总线( D-Code)。

2021-07-02 21:52:04 3977 1

原创 Cortex-M3中断NVIC 概览

中断控制器,简称 NVIC,是 Cortex-M3 不可分离的一部分,它与 CM3 内核的逻辑紧密耦合,有一部分甚至水乳交融在一起。 NVIC 与 CM3 内核同声相应,同气相求,相辅相成,里应外合,共同完成对中断的响应。 NVIC 的寄存器以存储器映射的方式来访问,除了包含控制寄存器和中断处理的控制逻辑之外, NVIC 还包含了 MPU、 SysTick 定时器以及调试控制相关的寄存器。NVIC 共支持 1 至 240 个外部中断输入(通常外部中断写作 IRQs)。具体的数值由芯片厂商在设计芯片时决定

2021-06-12 17:54:43 831

原创 Cortex-M3 I-Code,D-Code,系统总线及其他总线接口

Cortex-M3 的总线接口下图是Cortex-M3的连接方式样板图,大家可以根据需求自行更改, CM3 处理器的总线接口是基于 AHB-Lite 和 APB 协议。下图中总线复用器的作用是,让指令和数据在同一个总线上传输的方式,因为代码存储区既可以由指令指令总线(I-Code)访问(取指时),也可以被数据总线(D-Code)访问(访问数据时),需要在中间插入一个总线开关,称为总线矩阵,或者使用一个AHB总线复用器。(这里所讲的总线矩阵不是 CM3 内部的总线矩阵,它们是两码事。 CM3 内部的总线矩阵

2021-06-12 16:08:47 10300 4

原创 AHB-lite时序详细解读

AHB-Lite是AHB的子集,简化了AHB总线的设计,只有一个主设备,只有主机有权发起通信,不用考虑仲裁。对于AHB-Lite,包含数据总线、地址总线和额外的控制信号数据总线用于交换数据信息地址总线用于选择一个外设,或者一个外设中的某个寄存器。(即产生片选信号,使能外设的寄存器。)控制信号用于同步和识别tradeoffAHB-Lite信号说明:AHB-Lite基本读时序:Master需要从外设读取数据时,总共需要经历两个阶段:Address phase & Data phas

2021-06-11 19:28:49 5280

原创 Cortex_M3通用寄存器组&特殊功能寄存器功能简介及汇编用法

通用寄存器组:CM3 拥有通用寄存器 R0-R15 以及一些特殊功能寄存器。 R0-R12 是最“通用目的”的,但是绝大多数的 16 位指令只能使用 R0-R7(低组寄存器),而 32 位的 Thumb-2 指令则可以访问所有通用寄存器。特殊功能寄存器有预定义的功能,而且必须通过专用的指令来访问。RO–R12为32位的通用寄存器;绝大多数的 16 位指令只能使用 R0-R7(低组寄存器),而 32 位的 Thumb-2 指令则可以访问所有通用寄存器。R0-R7 也被称为低组寄存器。所有指令都能访问

2021-06-11 18:19:07 4333

原创 将GPIO外设挂到Cortex_M3 AHB总线上详细流程&&扩展外设步骤总结

打开quratus把所需要的文件添加进去,ARM公司有写好的gpio外设模块,拿来直接用。有很多外设我们只需要添加到工程内部,然后写一些接口,分配地址,然后就可以写软件了。添加完成后要把cortex_m3这个文件设置为顶层(TOP LEVEL),找到cortex_m3这个文件然后点击鼠标右键,如下图所示,就能设置为顶层。![在这里插入图片描述](https://img-blog.csdnimg.cn/20210606225844550.png?x-oss-process=image/waterma...

2021-06-07 17:17:46 2671 1

原创 基于modelsim的十个Verilog入门试验程序(5)(数字秒表+自助售票机)—程序+测试代码+波形+结果分析

内容实验一:7人表决器的设计 实验二:算数逻辑单元的设计 实验三:JK触发器的设计 实验四:环形计数器的设计 实验五:顺序排列的设计 实验六:二进制除法器的设计 实验七:数字显示频率计的设计 实验八:序列检测器的设计 实验九:数字秒表的设计 实验十:自助售票机的设计实验九:数字秒表的设计 设计一个数字秒表①秒表读书显示分、秒、百分秒三个数字;②具有异步复位和暂停功能;③提交秒表计程序和测试程序,观测仿真波形,并对仿真波形做分析, 说明设计的正确性。④采用分层次分模块的方法/

2021-06-06 17:21:13 2067

原创 基于modelsim的十个Verilog入门试验程序(4)(数字显示频率计+序列检测器)—程序+测试代码+波形+结果分析

内容实验一:7人表决器的设计 实验二:算数逻辑单元的设计 实验三:JK触发器的设计 实验四:环形计数器的设计 实验五:顺序排列的设计 实验六:二进制除法器的设计 实验七:数字显示频率计的设计 实验八:序列检测器的设计 实验九:数字秒表的设计 实验十:自助售票机的设计实验七:数字显示频率计的设计 设计一个8 位数字显示的简易频率计①能够测试10Hz~10MHz 方波信号;②电路输入的基准时钟为1Hz,要求测量值以8421BCD 码形式输出;③系统有复位键;④采用分层次分模块的方

2021-06-06 17:16:19 2942

原创 基于modelsim的十个Verilog入门试验程序(3)(顺序排列+二进制除法器)—程序+测试代码+波形+结果分析

内容实验一:7人表决器的设计 实验二:算数逻辑单元的设计 实验三:JK触发器的设计 实验四:环形计数器的设计 实验五:顺序排列的设计 实验六:二进制除法器的设计 实验七:数字显示频率计的设计 实验八:序列检测器的设计 实验九:数字秒表的设计 实验十:自助售票机的设计实验五:顺序排列的设计编设a,b,c,d四个数,按从小到大的顺序重新排列并输出到ra,rb,rc,rd中。要求:(1)需在Verilog HDL描述中使用任务(task)。//程序:module order(a, b

2021-06-06 17:09:52 1795 2

原创 基于modelsim的十个Verilog入门试验程序(2)(JK触发器+环形计数器)—程序+测试代码+波形+结果分析

内容实验一:7人表决器的设计 实验二:算数逻辑单元的设计 实验三:JK触发器的设计 实验四:环形计数器的设计 实验五:顺序排列的设计 实验六:二进制除法器的设计 实验七:数字显示频率计的设计 实验八:序列检测器的设计 实验九:数字秒表的设计 实验十:自助售票机的设计实验三:JK触发器的设计编写Verilog代码使之能正确描述下表所示的1bit JK触发器功能,其中Q+表示在时钟上升沿到来后的Q值。要求该触发器还具有异步复位的功能//程序:module jk_ff(q,clk,j,

2021-06-06 17:04:45 4780 1

原创 基于modelsim的十个Verilog入门试验程序(1)(7人表决器+算术逻辑单元)—程序+测试代码+波形+结果分析

内容实验一:7人表决器的设计 实验二:算数逻辑单元的设计 实验三:JK触发器的设计 实验四:环形计数器的设计 实验五:顺序排列的设计 实验六:二进制除法器的设计 实验七:数字显示频率计的设计 实验八:序列检测器的设计 实验九:数字秒表的设计 实验十:自助售票机的设计实验一:7人表决器的设计。设计一个7输入表决电路,当输入为1的个数大于3时,即3人同意,表决通过,输出“1’b1”,否则输出“1’b0”//程序:module voting(a, b, c, d, e, f, g, o

2021-06-06 16:50:36 11812 2

原创 集成电路可测性设计DFT技术入门概论--MBIST技术报告

集成电路DFT技术入门概论–MBIST技术报告1 技术发展背景2 国内外研究发展现状2.1 国外研究发展现状2.2 中国国内研究发展现状3 基本MBIST算法4 存储器的故障类型分类及相应测试方法1 技术发展背景理想的测试追求测试成本低、故障覆盖率高。测试的主要目的其一是协助工艺厂商提升芯片良率,其二是为了在产品交付给客户之前剔除缺陷芯片。衡量芯片良率的重要指标称为缺陷级别( Defect Level ),它通过一个重要参数来表征——每百万缺陷数(Defect Per Mill

2021-06-06 16:36:07 4011

原创 基于Flash的ECC纠错算法基本原理及软件C语言算法和硬件Verilog实现(PPT在主页可下载)

目录:1: ECC原理2: ECC校验-列校验3: ECC校验-行校验4: ECC校验结果的分析5: 算法实现6: 实例分析7: 校验流程总结8:硬件verilog代码1.ECC校验原理先看下奇偶校验:奇校验: 一个字节有8位, 校验位1位, 共9位, 使9位中“ 1” 的个数为奇数;偶校验: 同理。奇偶校验缺点 : 1.奇偶校验每传输一个字节都需要加一位校验位, 对传输效率影响很大。2.不能把纠正错误。ECC校验:从NAND Flash读取数据时, Page( 存储数据的

2021-06-06 15:44:32 3383

不使用总线矩阵的CortexM3最小系统

挂载UART,ITCM,DTCM,DELAULT_SLAVE,采用decode+slave_mux的形式代替总线矩阵搭建M3最小系统

2021-08-19

(零C币下载)soc搭建入门例程.zip

soc入门例程

2021-07-15

SOC设计与原理汇报文档.pptx

(免C币下载)cortex_m0架构(顶层&AHB_Lite接口)

2021-07-15

(零C币下载)ECC纠错算法与实现.pptx

基于FLASH的ECC纠错算法,ECC原理,校验流程,结果分析

2021-07-11

(零C币下载)基于ARC处理器的三个入门实验.pdf

软件安装&UART&GPIO

2021-07-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除