唐贝州武城(今山东武城西北)人。善天文算历,任文林郎。又善于断狱。隋仁寿中,迁楼烦郡司户书佐。后随李渊起兵反隋,任大将军府司户参军,封清河县公。武德时任内史舍人、尚书左丞等职。奉高祖命考校傅仁均、李淳风所撰律历,多有驳正。贞观初,任陕州刺史,入为大理、司农二卿,又出为秦州刺史。