资源预览内容
第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
亲,该文档总共7页全部预览完了,如果喜欢就下载吧!
资源描述
请教:单片机读写 FPGA 内部构建的双口 RA M 单片机通过 P0,ALE,RD,WR 与 FPGA 连接( 总线连接方式),我的具体做法是在 FPGA 内开辟 n(0255)个寄存器,用其中一个寄存 器端口映射双口 RAM 的 Qout7.0,在读 写操作时单个地址没有问题,单当对 RAM 地 址累计、写入或读出多个字节时出现问题。 请教有没人做过类似的项目,请赐教。谢 谢! 2010-01-14,10:32:39 资料 邮件 回 复 引用回复 编辑 删除 【1 楼 】 dzf 222 2 积 分 :6 派 别 : 等 级 :- - - 来 自 :我的 VHDL 语句如下: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity Registers is port( CSFPGA : in std_logic; Reset_N : in std_logic; Clk50M : in std_logic; ALE : in std_logic; RD : in std_logic; WR : in std_logic; DataToMCU : out std_logic_vector(7 downto 0); DataFromMCU : in std_logic_vector(7 downto 0); MemRdClk : out std_logic; ErrData_R : in std_logic_vector(7 downto 0); -记 录的出错点相对位置信息 ErrData_G : in std_logic_vector(7 downto 0); -记 录的出错点相对位置信息 ErrData_B : in std_logic_vector(7 downto 0); -记 录的出错点相对位置信息 -RdReq : out std_logic; - 读记录出错点位置信息 RAM 请求,实际未使用 RdAddr : out std_logic_vector(10 downto 0); -读 地址 ED_StartOut : out std_logic; -从 M CU 来的检测命令 ED_ModeEn : in std_logic:=0; -1 检测模式 ED_ACK : in std_logic; -握 手确认 FSM 已经收到检测命令 PixelCnt : out std_logic_vector(9 downto 0) -需 要检测的段数量 ); end Registers; architecture syn of Registers is signal ALE_int : std_logic; signal RD_int : std_logic; signal WR_int : std_logic; signal CSFPGA_int : std_logic; -signal CMDREG: std_logic_vector(7 downto 0); -signal ED_STATE: std_logic_vector(7 downto 0); signal CONREG_R: std_logic_vector(7 downto 0); signal CONREG_G: std_logic_vector(7 downto 0); signal CONREG_B: std_logic_vector(7 downto 0); signal ADDRESSREG : std_logic_vector(7 downto 0); signal LocSetting : std_logic:=0; signal ED_Start: std_logic:=0; signal ED_ModeEn_int:std_logic; signal PixelCnt_int : std_logic_vector(9 downto 0); signal RdAddress_int : std_logic_vector(10 downto 0); -signal CS : std_logic; begin ED_StartOut IF(DataFromMCU=X“ED“) THEN ED_Start IF(DataFromMCU=X“00“) THEN ED_Start IF(LocSetting=0) THEN PixelCnt_int(7 downto 0) NULL; END CASE; END IF; END PROCESS WRDATA; -* MemRdClk 0); ELSE RdAddress_int 0); ELSE RdAddress_int8); WFPGA(0xff,RegData); . . . 2010-01-14, 10:41:41 资料 邮件 回复 引用回复 编辑 删除 怎么没有人赐教啊 ! 【3 楼】 dzf 2222 积分:6 派别: 等级:- - 来自:2010-01-14, 10:45:40 资料 邮件 回复 引用回复 编辑 删除 WRDATA: process(WR_int) begin IF(WR_intEVENT AND WR_int=0) then 如果单片机的写信号是低电平有效的话,上句 是否应改为 IF(W R_intEVENT AND WR_int=1) then 【4 楼】 wan g110 积分:33 派别: 等级:- - 来自:2010-01-14, 21:46:31 资料 邮件 回复 引用回复 编辑 删除 没看清,删了,【5 楼】 888888 888888 积分:1895 派别: 等级:- 来自:南京
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号