主页 > 数据处理 > FPGA设计RISC CPU,如何进行数据的读取

FPGA设计RISC CPU,如何进行数据的读取

2023-10-22 15:58来源:m.sf1369.com作者:宇宇

一、FPGA设计RISC CPU,如何进行数据的读取

以下几个概念你想清楚,应该就好办了:

时钟:用作系统各碧迟卜种动作的触发(激励)信号;——跑道

程序初始地址:即系统在复位之后,程序执行所处的第一个地址;——起点

PC:程序计数器,用于存放表征系统下一步动作的地址;——方向

地址:分指令地址、数据地址,用于存放二进制机器码;//硬件上表现为一组寄存器

指令:可编译成二进制机器码,对应系统动作;//与硬件没有直接关系

数据:可编译成二进制机器码,对应系统运动的对象;//与硬件没有直接关系

二进制机器码:系统的一个动作对应的连续的一串高低电平;——脚步,可以是小步,也可以迈大步

把上面几个概念联系起来,cpu的运行大致如下:

以时间为节拍(一般为时钟的倍频)旦高,系统上电或者复位之后,pc跳转到程序初始地址,在时钟的触发下对该地址中的“二进制机器码”进行操作,在此过程中对pc值加1(如果指令字节不止1位,此处可能需要+2/3/4,情况复杂,建议你查阅相关资料);接下来在pc值的指引和时钟信号的触发下,系统就这样一步一步运作啦……

我也是尽可能的说的简单通俗点了,有点悔穗杂乱,欢迎补充……也希望你看得明白……

二、fpga如何将数据返回,pc如何接收

用串口监控软件来返回,发给pc并接收。

1、fpga可以通过串口监控软件来按照约定的波特率从低位到高位接收数据并返回,数据接收完毕后,接着接收并比较奇偶校验位是否正确庆谨盯,如果正确则通知后续设备准备接收数据或存入誉和缓存。

2、从电脑串口发来的数据,然晌薯后把收到的数据,发到电脑,这样pc就能接收了。

三、基于FPGA的频率计设计 毕业论文。。请高手帮忙,有重谢。。

这是大规模数字集成电路在系统可编程领域的经典课程设计。

数字频率计是近代电子技术领域的重要测量工具之一,租激虚同时也是其他许多领域广泛应用的测量仪器。数字频率计是在规定的基准时间内把测量的脉冲数记录下来,换算成频率并以数字形式显示出来。数字频率计用于测量信号(方波,正弦波或其他周期信号)的频率,并用十进制数字显示,它具有精度高,测量速度快,读数直观,使用方便等优点。

一个用VHDL语言实现的实例如下:

-- Project Name: 恒精度频率计弊燃

-- Target Devices: FPGA or CPLD

-- Revision 0.01 - File Created

-- Comments: clk--系统工作时钟,2MHz

-------------reset--系统复位信号,高电平有效

-------------Fx--为待测信号

-------------FreqNx--为待铅培测信号的计数值

-------------FreqNs--为标准信号的计数值

-------------Freq--为待测信号的频率

--

----------------------------------------------------------------------------------

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

----------------------------------------------------------

entity Cymometer is

generic(clk_freq : integer := 2000000);--系统工作时钟频率

Port ( clk : in STD_LOGIC;

reset : in STD_LOGIC;

Fx : in STD_LOGIC; ----待测信号

FreqNs : out natural;

FreqNx : out natural);

--Freq : out natural);

end Cymometer;

----------------------------------------------------------

architecture Behavioral of Cymometer is

----------------------------------------

signal start : STD_LOGIC;--此信号为高电平时计数器开始计数

signal CTRL : STD_LOGIC;--CTRL信号为待测信号和门控信号产生的计数器启动信号

signal CNTx : natural;--待测信号计数器

signal CNTs : natural;--标准信号计数器

----------------------------------------

begin

--***************************************--

--产生一个门控信号,高电平有效

GateCtrl : process(clk)

---------------------------

variable CNT0 : integer range 0 to 2_097_152;--门控信号计数器

---------------------------

begin

if rising_edge(clk) then

if reset='1' then

CNT0 := 0;

else

CNT0 := CNT0 + 1;

end if;

---------

if reset='1' then

start <= '0';

elsif CNT0 < (clk_freq*3/4) then

start <= '1';

else

start <= '0';

end if;

end if;

end process GateCtrl;

--***************************************--

--产生CTRL信号,由待测信号和门控信号产生的计数器启动信号

CtrlGen : process(Fx)

begin

if rising_edge(Fx) then

if reset='1' then

CTRL <= '0';

else

CTRL <= start;

end if;

end if;

end process CtrlGen;

--***************************************--

--用两个计数器分别对标准信号clk和待测信号signal计数

----------------------------------

--计数标准信号,CTRL高电平期间有效

CountS : process(clk)

begin

if rising_edge(clk) then

if reset='1' then

CNTs <= 0;

elsif CTRL='1' then

CNTs <= CNTs + 1;

else

CNTs <= 0;

end if;

end if;

end process CountS;

----------------------------------

--计数待测信号,CTRL高电平期间有效

CountX : process(Fx)

begin

if rising_edge(Fx) then

if reset='1' then

CNTx <= 0;

elsif CTRL='1' then

CNTx <= CNTx + 1;

else

CNTx <= 0;

end if;

end if;

end process CountX;

--***************************************--

--CTRL下降沿将技术结果和测量值输出

CountOut : process(CTRL)

begin

if falling_edge(CTRL) then

if reset='1' then

FreqNs <= 0;

FreqNx <= 0;

-- Freq <= 0;

else

FreqNs <= CNTs;

FreqNx <= CNTx;

-- Freq <= (clk_freq / CNTs * CNTx);

end if;

end if;

end process CountOut;

end Behavioral;

下面是为上面的模块编写的测试平台,在Modelsim下仿真通过,因为数据量较大,建议不要使用Altera及ISE仿真。

--------------------------------------------------------------------------------

LIBRARY ieee;

USE ieee.std_logic_1164.ALL;

USE ieee.std_logic_unsigned.all;

USE ieee.numeric_std.ALL;

ENTITY tb IS

END tb;

ARCHITECTURE behavior OF tb IS

-- Component Declaration for the Unit Under Test (UUT)

COMPONENT Cymometer

PORT(

clk : IN std_logic;

reset : IN std_logic;

Fx : IN std_logic;

FreqNs : OUT natural;

FreqNx : OUT natural;

Freq : OUT natural

);

END COMPONENT;

--Inputs

signal clk : std_logic := '0';

signal reset : std_logic := '1';

signal Fx : std_logic := '0';

--Outputs

signal FreqNs : natural;

signal FreqNx : natural;

-- signal Freq : natural;

-- Clock period definitions

constant clk_period : time := 500ns;

BEGIN

-- Instantiate the Unit Under Test (UUT)

uut: Cymometer PORT MAP (

clk => clk,

reset => reset,

Fx => Fx,

FreqNs => FreqNs,

FreqNx => FreqNx,

-- Freq => Freq

);

-- Clock process definitions

clk_process :process

begin

clk <= '0';

wait for clk_period/2;

clk <= '1';

wait for clk_period/2;

end process;

--产生待测信号

Fx_process : process

begin

Fx <= '0';

wait for 2*clk_period;

Fx <= '1';

wait for 2*clk_period;

end process;

-- Stimulus process

stim_proc: process

begin

-- hold reset state for 100ms.

wait for clk_period*10;

reset <= '0';

-- insert stimulus here

wait;

end process;

END;

参考原理M/T测频法。

1、 用FPGA实现控制基于I2C总线的EEPROM

2、 基于FPGA的简单OEM板念困GPS接收机设计

3、 基悄中于FPGAD的数字频率计设计

4、 [电气工程]基于FPGA的电网基本电量数字测量系统的设计

5、 [电子信息工程]基于单片机和FPGA的位同步信号提取

6、 基于FPGA的数字通信系统

7、 基于FPGA和锁相环4046实现波形发生器

8、 UC/OSII在FPGA上的移植

9、 基于FPGA的IIR滤波器设计

10、 基于FPGA的TD-SCDMA信道编解码技术研究与实现(硕士)

11、 基于ARM和FPGA的数控系统的硬件设计(硕士)

12、 基于FPGA的JPEG压缩编码的研究与实现(硕士)

13、 OFDM通信系统基带数据处理部分的FPGA实现

14、 FPGA应用实验板设计

15、 UWB-OFDM解调器的仿真及FPGA在线仿真实现

16、 高速VITERBI译码器在ALTERA FPGA中的设计与实现

17、 基于FPGA温、湿度传感器系统设计

18、 基于FPGA的嵌入式系统开发板

19、 卫星信道延时模拟器的FPGA实现

20、 基于启高山Altera FPGA的发动机ECU原型设计

21、 基于FPGA设计电梯控制系统

22、 FPGA在机卡分离式高清数字一体电视机里的应用

23、 PSK调制算法仿真与FPGA实现

24、 基于FPGA的数字复接系统帧同步器的设计

1、频率计嘛就是用来测试信号频率的啊!

2、用FPGA来做就最简单不过了!

3、我做了一个频率范围在0.5Hz__20MHz,一点都不夸张孝敏的,而且精度还很高,比你想象的要高的多!

4、软件设计就只要QUARTUS II,很好做的也很容野慎旅易!颂凳

5、就连报告也都有的!

你问的也太多了吧。真是舍得用百度啊。

1.频率计应该是能对输出的信号的频率进行调整。比如要困腔盯求输出10kHZ的某种波。指标:频率,波形,占空比,最高电压,最低电压,振幅等。

2.可以模块化,你自己参考资料去实现吧。

3.依旧百度,百科里有。

4.FPGA是基于硬件的编程,相对ASIC很灵活,能调整来实现汪和你的功能。在视频处理,工业控制,DSP上都有很大的使用。圆搭他也作为ASIC的模型。

1.频率计是干什么亏瞎的?

问这个问题的应该不是工科生吧!

不是工科生高卖做什么销念空频率计啊~~

哪凉快待哪去

相关推荐

车联网企业国内有哪些?

数据处理 2023-12-23

注册计量师-请教贴

数据处理 2023-12-19

逆光照片怎么处理

数据处理 2023-12-08