|
实现
仿真
- doSim { dut =>
- dut.clockDomain.forkStimulus(period = 1000)
- val us = 1000
- val ms = 1000*1000
- def irSendHead():Unit ={
- dut.io.ir #= false
- sleep(9*ms)
- dut.io.ir #= true
- sleep(45*ms/10)
- }
- def irSendBit(b:Int):Unit = {
- dut.io.ir #= false
- sleep(560*us)
- dut.io.ir #= true
- if(b!=0){
- sleep(1685*us)
- }else{
- sleep(560*us)
- }
- }
- def irSendByte(d:Int):Unit={
- irSendBit(d & (0x01 << 0))
- irSendBit(d & (0x01 << 1))
- irSendBit(d & (0x01 << 2))
- irSendBit(d & (0x01 << 3))
- irSendBit(d & (0x01 << 4))
- irSendBit(d & (0x01 << 5))
- irSendBit(d & (0x01 << 6))
- irSendBit(d & (0x01 << 7))
- }
- def irSendTail():Unit ={
- dut.io.ir #= false
- sleep(560*us)
- dut.io.ir #= true
- sleep(500*us)
- sleep(40*ms)
- }
- def irSendRepeat():Unit={
- dut.io.ir #= false
- sleep(9*ms)
- dut.io.ir #= true
- sleep(225*ms/100)
- dut.io.ir #= false
- sleep(560*us)
- dut.io.ir #= true
- sleep(102*ms)
- }
- def irSend(userCode: Int,dataCode:Int): Unit ={
- irSendHead()
- irSendByte(userCode)
- irSendByte(~userCode)
- irSendByte(dataCode)
- irSendByte(~dataCode)
- irSendTail()
- }
- val irThread = fork{
- dut.io.ir #= true
- sleep(20*ms)
- irSend(0x80,0x04)
- irSendRepeat()
- irSendRepeat()
- irSend(0x80,0x06)
- }
复制代码
Verilog
|
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|