xilinx 14.7 迷醉记录

迷醉,迷醉,迷醉。


讲道理,为什么datapath的数据就一个周期一个周期存得好好的呢。为什么自己写的cp0就各种串数据呢??说好的非阻塞呢???

我开了无数个中介寄存器,reg、wire中间隔了几层,结果呢?寄存器呢?你存的东西呢?为什么输入端一变,这中间隔的几层寄存器都隐形了??怎么输出直接就出结果了??你练短跑的???

我都被逼急了。两个寄存器可以吧?搞个分路选择可以吧?这下可以给我存了吧?

仿真都好好的,下板子一试。为什么way0和way1每个时刻都一样?都一样?都一样?说好的两路选择呢?说好的呢?怎么跟说好的不一样??你们是同卵双生的??

	always @(posedge clk) begin
		if(way)begin
			way<=0;
			way0<=ret_addr;
		end
		else begin
			way<=1;
			way1<=ret_addr;
		end
		ir_coming <= ir_in;
	end

讲道理这就够迷了。

还有更迷的。

我ret_addr要是作为wire连进来。时钟周期一到,存到epcr里面的,也跟着ID指令立刻就变了,变成ehbr的地址了,而不是中断产生时的PC。那好嘛。我在datapath加个寄存器给你可以吧?你给我存住可以吧?然后呢。你存就好好存啊。你怎么居然存不了当前的ret_addr?怎么一直是上一周期的ret_addr?所以我加了寄存器你给我弄上一条PC的,我不加你又给我整中断响应的那条PC,那我要的这条呢?发生了中断了的这条呢?加半个寄存器??你加给我看啊摔!!

讲道理这就够迷了。

还有更迷的。

		else if (ir_coming && ~during) begin
			during <= 1;
			jump_en <= 1;
			jump_addr <= ehbr;
			epcr <= way?way0:way1;
		end
整个代码就这一段给during赋值1。结果下板子。为什么有时刻during是1但是jump_en是0啊??魔幻分身术??幻影变身术??

讲道理。我道理也不讲了。

就是更迷。没有最迷。

	initial begin
		during<=0;
	end
	

下板之后。我也不说了。求during初值吧。对就是1。每次reset。都是1。

我到底做错什么了???

好气啊。

迷醉,迷醉,迷醉。

珍爱生命,珍爱生命,珍爱生命。

远离FPGA/XILINX ISE。


好气啊。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值