MyFPGA Forum

标题: DE2 lab6--part8 [打印本页]

作者: yf.x    时间: 2010-7-5 16:12
标题: DE2 lab6--part8
练习要求实现
S=(AXB)+(CXD)
乘法和加法分别用lpm实现,这个很简单,没问题。关键是要求复用,如,SW15-8表示A或C,SW7-0表示B或D。通过SW16来控制,当SW16=1是,为A,B组合,SW=0时,为C,D组合。SW17为寄存器的写入使能,当SW17=1时,A,B或C,D的值写入寄存器。

这样的话,代码如下:

always @(posedge KEY[1] ,negedge KEY[0])
beign
  if(!KEY[0])     //复位
  begin
    Areg<=0; Breg<=0; Creg<=0; Dreg<=0; cout<=0; S<=0;
  end
  else
  begin
     if(SW17)    //寄存器写使能
     begin
        if(SW16) begin      //选择A,B
        Areg<=SW[15:8];  Breg<=SW[7:0];
        end
       else                        //选择C,D
       begin
       Creg<=SW[15:8]; Dreg<=SW[7:0];
       end
     end
    else                              //写使能无效,禁止写入,即保持
     begin
      Areg<=Areg; Breg<=Breg; Creg<=Creg; Dreg<=Dreg;
     end
   end

以上理解不知道有误否?
作者: Pocahontas    时间: 2010-7-6 11:21
这样的意义没有错…
未来会使用真正的 clk , 不会再使用 KEY[1]…





欢迎光临 MyFPGA Forum (http://www.myfpga.org/discuz/) Powered by Discuz! X3