摘要: 1 module latch_ca(output q_out,2 input data_in,3 input enable);4 5 assign q_out = enable ? data_in : q_out;6 7 endmodule1 module latch_rbar_ca(output q_out,2 input data_in,3 input enable,4 input reset);5... 阅读全文
posted @ 2013-02-25 17:31 心若在 阅读(336) 评论(0) 推荐(0)
摘要: 2440支持IRQ(普通中断)和FIQ(快速中断)。2440有60个中断源,不支持中断嵌套。CPU每执行一条指令都会检查CPSR寄存器,当发现I或F位被置1时,就进行中断处理。需要两次查表过程(为什么要查两次表??没有办法,ARM把所有的中断都归纳成一个IRQ中断异常和一个FIQ中断异常;第一次查表主要是查出是什么异常,可我们总要知道是这个中断异常中的什么中断呀!没办法还需要查第二次)。第一步跳入异常向量表:地址异常名称指令0x00复位异常B RestHandler0x04未定义指令异常B HandlerUndef0x08软件中断异常B HandlerSWI0x0C指令预取异常B Handle 阅读全文
posted @ 2012-09-17 14:20 心若在 阅读(246) 评论(0) 推荐(0)
摘要: S3C2440一共有60个中断源,其中有15个子中断源,它们与SUBSRCPND寄存器中的每一位相对应,其他45个中断源与SRCPND中的每一位相对应。要注意的是EINT4~7对应的是同一位SRCPND[4],而EINT8~23对应的也是SRCPND[5]一位。1 S3C2440的中断寄存器 中断分两大类:外部中断和内部中断。1.1 外部中断寄存器 24个外部中断占用GPF0-GPF7(EINT0-EINT7),GPG0-GPG15(EINT8-EINT23)。用这些脚做中断输入,则必须配置引脚为中断,并且不要上拉。具体可参考datesheet数据手册。寄存器: ... 阅读全文
posted @ 2012-09-17 14:15 心若在 阅读(263) 评论(0) 推荐(0)
摘要: 这里主要讨论占空比为50%的奇数分频方法,基本原理是利用输入时钟的上下沿来分别得到两个分频时钟,然后把这两个时钟相或得到所需时钟,代码如下 1 module div_N(clk_out,clk_in,rst_n);//N代表N分频,这里N为奇数 2 output clk_out; 3 input rst_n,clk_in; 4 parameter N=11; //这里N可以改为任何需要的奇数,这里以11分频为例子 5 reg clk_p,clk_n; 6 reg [3:0] cnt_p,cnt... 阅读全文
posted @ 2012-04-27 14:18 心若在 阅读(1537) 评论(0) 推荐(1)